본문 바로가기

Kubenetes/Kubernetes Controller

(5)
StatefulSet ㅁ 스테이트풀(Stateful) Pod 복제 - 레플리카셋은 단일 포드 템플리에서 여러 포드 복제본을 생성 - 복제본은 이름과 IP주소만 다르 뿐 나머지는 동일 - 포트 템플릿에 특정 PersistentVolumClaim을 참조하는 볼륨이 있으면 레플리카셋의 모든 복제본은 동일한 PersistentVolumeClaim사용하므로 Claim에 바인딩된 동일한 PersistentVolume을 사용함 여러 포드의 복제본을 찍어내는 데 사용하는 포드 템플릿에서 이 클레임(Persistent Volume Claim)을 참조하기 때문에 각 복제본이 고유한 PersistentVolumeClaim을 사용하도록 설정 할 수 없다. ㅁ 스테이트풀셋 이해 레플리카셋 또는 레플리케이션 컨트롤러로 관리하는 포드 복제본은 가축과 ..
Deployment - 애플리케이션 업데이트 다른 Pod나 외부 클라이언트에게 Service를 제공하는 Pod 인스턴스 세트가 있다고 가정하면 아래와 같은 구성으로 보여질 수 있다. 위의 Pod 내의 애플리케이션을 새로운 버전으로 업데이트 하기 위해서는 다음과 같은 방법이 필요 ㅇ 기존의 모든 Pod를 먼저 삭제한 다음 새로운 포드를 시작 ㅇ 새로운 것을 시작하고, 일단 끝나면 오래된 것을 지움. 모든 포드를 추가한 다음 한번에 모든 기존 포드를 삭제하거나 순차적으로 추가/제거 해야 함. 위의 작업들을 쿠버네티스가 자동으로 업데이트 하는 방법이 디플로이먼트임. [오래된 포드를 삭제하고 새로운 포드로 교체] 잠깐의 다운 타임을 허용할 수 있다면 포드의 세트를 업데이트하는 가장 간단한 방법 [한 번에 기존 버전에서 새로운 버전으로 전환] 포드는 대개 ..
잡 리소스 및 스케줄링 작업을 완료한 후 종료되는 테스크만 실행하길 원하는 경우가 있다. 하지만 레플리케이션컨트롤러, 레플리카셋 및 데몬셋은 작업의 완료를 고려하지 않고 계속적으로 태스크를 실행한다. 따라서 쿠버네티스는 잡 리소스를 통해 내부에서 실행 중인 프로세스가 성공적으로 완료되면 컨테이너가 다시 시작되지 않도록 하는 포드를 실행할 수 있다. 일단 그렇게 되면 포드가 완료된 것으로 간주한다. [잡 리소스의 정의] export.yaml apiVersion: batch/v1 # 잡은 Batch API 그룹의 버전 v1에 있다. kind: Job metadata: name: batch-job spec: # 포드셀렉터를 지정하지 않았다. tmeplate: # 포드 템플릿의 라벨을 기반으로 만들어진다 metadata: labels..
레플리카셋(Replicaset) [레플리케이션컨트롤러 & 레플리카셋 차이] - 레플리카셋은 레플리케이션컨트롤러와 똑같이 동작하지만 더 풍부한 표현식 포드 셀렉터를 갖음 - 단일 레플리케이션컨트롤러는 ㅁ 레플리케이션컨트롤러의 라벨. 셀렉터는 특정 라벨을 포함하는 포드가 일치하는지만 본다 ㅁ 포드를 라벨 env=production 및 라벨 env=devel과 동시에 일치 불가 ㅁ 라벨키가 있는 경우에만 포드와 일치 - 레플리카셋 ㅁ 레플리카셋의 셀렉터는 특정 라벨이 없거나 해당 값과 관계없이 특정 라벨 키를 포함하는 포드를 매치하는지 본다. ㅁ 단일 레플리카셋은 두 포드의 세트와 일치 가능하며 단일 포드로 취급 가능 ㅁ 레플리카셋은 라벨키가 없어도 일치 가능 (라벨을 포함하는 모든 포드를 env=*로 생각할 수 있는) [레플리카셋 정의] ..
레플리케이션 컨트롤러 (Replication Controller) - 레플리케이션 컨트롤러는 포드가 항상 실행되도록 유지하는 쿠버네티스 리소스 - 노드가 클러스터에서 사라지는 경우 또는 노드에서 포드가 제거된 경우와 같이 어떤 이유로든 포드가 사라지면 레플리케이션컨트롤러는 누락된 포드를 감지하고 대체 포드를 만든다. [레플리케이션컨트롤러의 동작] 레플리케이션컨트롤러는 실행 중인 포드의 목록을 지속적으로 모니터링하고 '유형'의 실제 포드 수가 원하는 수와 항상 일치하는지 확인 [컨트롤러의 연결 고리] [레플리케이션켠트롤러의 세가지 요소] ㅁ 레플리케이션컨트롤러의 범위에 있는 포드를 결정하는 라벨 셀렉터 ㅁ 실행해야 하는 포드의 원하는 수를 지정하는 복제본 수 ㅁ 새로운 포드 복 제본을 만들 때 사용되는 포드 템플릿 [컨트롤러의 라벨 셀렉터 또는 포드 템플릿 변경에 따른 ..