Taints and Tolerations

Yu Sang Min·2025년 5월 26일

CKA

목록 보기
19/110
post-thumbnail

📌 Taints and Tolerations (오점과 관용)

  • podnode의 관계에 대해
  • 한 노드에 어떤 pod로 스케줄링할 수 있는지 제한을 설정하기 위해 사용

⛽️ Taints - Node

⌨️ Command

$ kubectl taint nodes <node-name> <key=value>:<taint-effect>
# taint-effect = NoSchedule | PreferNoSchedule | NoExecute

$ kubectl taint nodes node1 app=blue:NoSchedule

💊 Tolerations - Pods

📋 Definitions

# pod-definition.yaml

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
spec:
  containers:
  - name: nginx-container
    image: nginx
  tolerations:
  - key: app
    operator: “Equal”
    value: blue
    effect: NoSchedule  
  • kubectl taint node node01 app=blue:NoSchedule 명령어에서 key, operator, value, NoSchedule 필드를 채워준다.
  • 이 모든 값은 더블 코드로 인코딩 되어야한다

❌ Taint - NoExecute

  • 특정 노드에 파드를 배치하는것이 아닌 특정 노드에 수용할 수 있는 파드를 명시해 놓은 개념

  • 만약 특정 노드에 한 포드를 제한하는 게 요구 사항이라면 노드 선호도라는 개념을 통해 구현

  • 추가로 스케줄러는 마스터노드에는 어떠한 파드도 스케줄링 하지 않음!

  • 쿠버네티스 클러스터가 처음 설정되면 마스터노드에 taint 설정이 기본으로 되어 이 노드에 pod가 지정 되는것을 막는다

  • 필요하면 이 동작을 수정할 수 있지만 마스터 노드에 응용프로그램 작업을 배포하지 않는것이 best practice

    • kubectl describe node kubemaster | grep Taint
      Taints: node-role.kubernetes.io/master:NoSchedule
profile
React, Node.js, AWS, Git, Github, Github Action, Docker, K8S

0개의 댓글