Tools/Kubernetes

[CKA 도전 시리즈] 8. Node 관리 / Pod Scheduling

MOMOBOB 2023. 1. 22. 19:53
반응형

 

Node 관리

cordon : 특정 노드의 스케줄링 중단

  • kubectl cordon <NODE_NAME>

uncordon : 특정 노드의 스케줄링 중단 해제(허용)

  • kubectl uncordon <NODE_NAME>

drain : 특정 node 에서 실행중인 pod 비우기(drain) 및 제거(delete)

  • kubectl drain <NODE_NAME> --ignore-daemonsets –force

 

Node 정보보기

Node Taint와 Pod toleration

  • worker node에 taint가 설정된 경우 동일한 값의 toleration이 있는 Pod만 배치
  • toleration이 있는 Pod는 동일한 taint가 있는 Node를 포함하여 모든 노드에 배치됨.
    • **taint가 없는 노드도 배치될 수 있음
  • Effect 필드 종류
    • NoSchedule : toleration이 맞지않으면 배치 안됨.
    • PreferNoSchedule : toleration이 맞지 않으면 배치되지 않으나, 클러스터 리소스가 부족하면 배치됨.
    • NoExecute : toleration이 맞으면 동작중인 pod 종료

 

반응형

 

Pod Scheduling

Worker노드에 할당한 label을 이용하여 pod 배치할 노드를 선택

  • kubectl label nodes <NODE_NAME> <LABEL_KEY>=<LABEL_VALUE>

노드에 레이블 할당

kubectl label nodes <NODE_NAME> <LABEL_KEY>=<LABEL_VALUE>

# 예
kubectl label nodes node1.example.com gpu=true

 

파드 생성

apiVersion: v1
kind: Pod
metadata:
  name: web
spec:
  containers:
  - image: nginx:1.14
    name: web
    ports:
    - containerPort: 80
  nodeSelector:
    gpu: "true"

 

끝.

 

 


Thank you!

 

 

반응형