kubernetes Control Plane의 kube-scheduler는 POD를 어떤 워커 노드에 배정할지 결정한다.

이번에 배울 주제는 POD가 어떤 노드에 배정되고 eviction 될지에 대한 내용이다.

Manual

kubernetes에서는 POD spec에서 배정될 node를 직접 명시할 수 있게 제공해준다. 일반적으로 직접 이 필드를 지정하지 않고 쿠버네티스가 자동으로 추가해준다. 식별되면 바인딩 객체를 만들어 nodeName 속성을 노드 이름으로 설정하여 노드에서 파드를 예약한다.

Untitled

apiVersion: v1
kind: Pod
metadata:
 name: nginx
 labels:
  name: nginx
spec:
 containers:
 - name: nginx
   image: nginx
   ports:
   - containerPort: 8080
 nodeName: node02

No Scheduler

노드 자체에 파드를 수동으로 할당할 수 있다. 파드 정의에 nodeName 속성을 파드가 만들어 지는 동안 주입해준다.

Untitled

apiVersion: v1
kind: Binding
metadata:
  name: nginx
target:
  apiVersion: v1
  kind: Node
  name: node02
apiVersion: v1
kind: Pod
metadata:
 name: nginx
 labels:
  name: nginx
spec:
 containers:
 - name: nginx
   image: nginx
   ports:
   - containerPort: 8080

Labels and Selectors