[쿠버네티스] Node Scheduling
·
Docker
nodeName nodeName은 어피니티 또는 nodeSelector보다 더 직접적인 형태의 노드 선택 방법이다. nodeName은 파드 스펙의 필드 중 하나이다. nodeName 필드가 비어 있지 않으면, 스케줄러는 파드를 무시하고, 명명된 노드의 kubelet이 해당 파드를 자기 노드에 배치하려고 시도한다. nodeName은 nodeSelector 또는 어피니티/안티-어피니티 규칙보다 우선적으로 적용(overrule)된다. nodeName을 사용해서 노드를 선택할 때의 몇 가지 제한은 다음과 같다. 만약 명명된 노드가 없으면, 파드가 실행되지 않고 따라서 자동으로 삭제될 수 있다. 만약 명명된 노드에 파드를 수용할 수 있는 리소스가 없는 경우 파드가 실패하고, 그 이유는 다음과 같이 표시된다. 예:..
[쿠버네티스] Qos 클래스-Guaranteed, Burstable, BestEffort
·
Docker
QoS 클래스 Why? Node에 Pod가 3개 있고 균등하게 자원 배분을 하고 있다고 가정 Pod 1에서 추가적으로 리소스를 더 사용해야 하는 상황 -> App의 중요도에 따라 다른 Pod를 다운시키고 할당시키기 위해 쿠버네티스는 Qos 클래스 지원 QoS 클래스 종류 쿠버네티스가 파드를 생성할 때, 파드에 다음의 QoS 클래스 중 하나를 할당한다. Guaranteed Burstable ( 두 번째로 다운) BestEffort (제일 먼저 다운) Guaranteed QoS 클래스가 할당되는 파드 생성 파드에 Guaranteed QoS 클래스 할당을 위한 전제 조건은 다음과 같다. 파드 내 모든 컨테이너는 메모리 상한과 메모리 요청량을 가지고 있어야 한다. 파드 내 모든 컨테이너의 메모리 상한이 메모리 ..
[쿠버네티스] livenessProbe, readinessProbe
·
Docker
Probe 프로브 종류 kubelet은 실행 중인 컨테이너들에 대해서 선택적으로 세 가지 종류의 프로브를 수행하고 그에 반응할 수 있다. livenessProbe 컨테이너가 동작 중인지 여부를 나타낸다. 만약 활성 프로브(liveness probe)에 실패한다면, kubelet은 컨테이너를 죽이고, 해당 컨테이너는 재시작 정책의 대상이 된다. 만약 컨테이너가 활성 프로브를 제공하지 않는 경우, 기본 상태는 Success 이다. readinessProbe 컨테이너가 요청을 처리할 준비가 되었는지 여부를 나타낸다. 만약 준비성 프로브(readiness probe)가 실패한다면, 엔드포인트 컨트롤러는 파드에 연관된 모든 서비스들의 엔드포인트에서 파드의 IP주소를 제거한다. 준비성 프로브의 초기 지연 이전의 기..
[쿠버네티스] POD Lifecycle
·
Docker
POD Lifecycle POD의 LifeCycle은 다음과 같다. LIfecycle의 특징은 각 단계마다 행동이 다르다. POD를 생성한 후 Pod의 status 필드는 phase 필드를 포함하는 PodStatus 오브젝트로 정의된다. Pending 파드가 쿠버네티스 클러스터에서 승인되었지만, 하나 이상의 컨테이너가 설정되지 않았고 실행할 준비가 되지 않았다. 여기에는 파드가 스케줄되기 이전까지의 시간 뿐만 아니라 네트워크를 통한 컨테이너 이미지 다운로드 시간도 포함된다. Running 파드가 노드에 바인딩되었고, 모든 컨테이너가 생성되었다. 적어도 하나의 컨테이너가 아직 실행 중이거나, 시작 또는 재시작 중에 있다. Succeeded 파드에 있는 모든 컨테이너들이 성공적으로 종료되었고, 재시작되지 않..