kubernetes Control Plane의 kube-scheduler는 POD를 어떤 워커 노드에 배정할지 결정한다.
이번에 배울 주제는 POD가 어떤 노드에 배정되고 eviction 될지에 대한 내용이다.
kubernetes에서는 POD spec에서 배정될 node를 직접 명시할 수 있게 제공해준다. 일반적으로 직접 이 필드를 지정하지 않고 쿠버네티스가 자동으로 추가해준다. 식별되면 바인딩 객체를 만들어 nodeName 속성을 노드 이름으로 설정하여 노드에서 파드를 예약한다.
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
name: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 8080
nodeName: node02
노드 자체에 파드를 수동으로 할당할 수 있다. 파드 정의에 nodeName 속성을 파드가 만들어 지는 동안 주입해준다.
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