DEVOPS · K8S
Kubernetes 기본기와 배포 도구 학습 기록.
Argo CD
- "k8s를 제어하는 컨트롤러" ArgoCD는 웹 UI가 있는 툴처럼 보이지만, 기술적으로는 K8s Custom Controller이다. - CRD(Custom Resource Definition): K8s에는 기본적으로 Pod, Deployment같은 리소스가 있다. - ArgoCD를 설치하면 Application과 AppProject라는 새로운 리...
Deployment와 Pod
- 계속해서, ArgoCD를 하향식으로 학습해 나가본다. - 다음으로는 Deployment(전략) -> ReplicaSet(관리) -> Pod(실체) 순서로 내려가게 된다. - 백엔드 개발자에게 익숙한 개념으로 비유해보자. - Deployment : 배포 전략서 (Blue/Green을 할지, Rolling을 할지, 버전은 뭔지) - ReplicaSet :...
Helm
- k8s의 Gradle - Gradle이 .jar 파일을 관리한다면, Helm은 k8s yaml 파일 뭉치(Chart)를 관리한다. - 개발자 입장에서 Helm이 해결해 주는 핵심 문제는 바로 하드코딩 제거와 재사용성이다. Helm 없이 k8s를 운영하면 "복붙의 지옥"에 빠진다. - 상황 : api 서비스를 Alpha, Beta, Real 환경에 배포해...
Kubernetes 공부 시작
컨테이너 : 어떤 애플리케이션을 어디서 돌리든 동일하게 돌도록 만드는 격리된 실행 환경 - 1. 컨테이너의 핵심 특징 - 이미지(Image): 실행 환경 + 코드 + 라이브러리가 통째로 들어있는 스냅샷 - (예) openjdk:17-alpine + jar파일 - 컨테이너 : 이미지를 실행한 상태 (프로세스) - 불변성 : 한 번 빌드한 이미지는 어떤 서버에...
Service와 Ingress
- Deployment가 서버를 띄우고 관리하는 것이라면, Service와 Ingress는 "그 서버로 가는 길을 뚫어주는 것(Networking)"이다. - 딱 한 문장으로 정의하고 시작하면 이해가 빠를 것이다. > Pod는 변수(Variable)고, Service는 상수(Constants)이다. Pod는 일회용이다. 배포할 떄마다 죽고 새로 태어나며,...