Wonyoung Seo

Data Scientist / ML Engineer

[KR] Kubernetes - Helm

Helm 쿠버네티스는 하나의 애플리케이션 배포를 위해 수많은 yaml 파일을 작성 수정해야 함 helm 은 위의 과정을 해결해줄 수 있는 패키징 툴 ubuntu - apt, mac - brew, python - pip 같은 거라고 보면 됨 helm-chart는 쿠버네티스 리소스를 하나로 묶은 패키지 Helm 설치하기 Helm | Installing Helm Helm을 통해 애플리케이션 설치하기 # 설치 helm install wordpress # 업그레이드 helm upgrade wordpress # 롤백 helm rollback wordpress # 삭제 helm uninstall wordpress values....

March 28, 2024 · 2 min · Wonyoung Seo

[KR] Kubernetes - Stateful Sets

Stateful Sets Pod template 으로 생성, 스케일업 다운이 가능해서 deployment 와 비슷함 Pod에 저장된 데이터 또는 Pod의 설정을 stateful하게 유지해야 하는 경우 사용됨 Stateful Set은 스케쥴링 될 Pod에 특정 규칙에 따라 유니크한 인덱스를 부여함 이렇게 생성된 Pod는 재생성 되는 상황에서도 랜덤한 문자열이 아닌 규칙에 따른 이름이 부여됨 따라서 인덱스에 따라 Pod 스케줄링에 순서 또는 특정한 패턴을 부여할 수 있음 Stateful Set으로 생성한 Pod의 스토리지는 PVC로만 연결 가능 Stateful Set이 필요한 이유 인스턴스들이 특정 순서로 실행되어야 하는 경우 예) 멀티노드 구조로 데이터베이스를 구축하고자 할 때 - Master 노드 먼저 생성 → Slave 노드 이후 생성 Pod 이름, 네트워크 등의 정보를 초기화하지 않고, 유지해야 하는 경우 Stateful Set 생성 방법 ex) statefulset-definition apiVersion: apps/v1 kind: StatefulSet metadata: name: mysql labels: app: mysql spec: template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql replicas: 3 selector: matchLabels: app: mysql serviceName: mysql-h # 서비스 이름 지정 podManagementPolicy: OrderedReady # default....

March 26, 2024 · 3 min · Wonyoung Seo

[KR] Kubernetes - Job / CronJob

Job 단발성으로 연산, 데이터 처리 등을 이유로 자원을 써야하는 경우도 있음 이러한 작업을 Pod로 구현한다면, Pod는 중료 후 재생성 되는 사이클을 반복함 restartPolicy: Always가 디폴트이기 때문에 사용자가 삭제하지 않는 한 Pod 는 실행 상태를 유지하는 것이 K8s 의 특성 restartPolicy: Never 로 설정하면 한번 실행하고 종료가 되긴 함. 만일 다수의 파드를 생성하고 배치로 스케쥴링 및 관리하고 싶다면 Job 오브젝트를 사용하면 됨. 싶다면? Job 정의 apiVersion: batch/v1 # 버전 주의 kind: Job metadata: name: my-job spec: template: spec: cotainers: - name: math-add image: ubuntu command: ['expr', '3', '+', '2'] restartPolicy: Never completions: 3 parallelism: 3 completion...

March 23, 2024 · 2 min · Wonyoung Seo

[KR] Kubernetes - Readiness & Liveness Probes

Status와 Conditions 쿠버네티스에서 Pod Status와 Conditions 은 파드의 상태를 확인하는 가장 기본적인 방법이다.   Pod Status kubectl get pods 상태 예시 Pending - 스케줄러가 파드를 스케줄링할 노드를 찾지 못 하면 ContainerCreating - 스케줄링되면, 이미지를 받아 컨테이너를 실행하는 상태 Running - 실행 중   Pod Condition kubectl describe pods Pod Status 에 비해 더 세부적인 현상태를 조회할 수 있음. 4가지 상태 카테고리를 True/False 로 나타냄....

March 20, 2024 · 3 min · Wonyoung Seo