Certificated 도전/CKA - Kubernetes

[CKA] 특정 노드에 파드가 할당 되는 것을 제어하는 taint , toleration

지추월자 2023. 12. 3. 11:10
반응형

쿠버네티스(Kubernetes)에서 taint는 노드에 적용되어 해당 노드에 파드가 스케줄될 수 있는지 여부를 결정하는 메커니즘입니다. taint를 사용하면 특정 노드에 파드가 할당되는 것을 제어할 수 있으며, 이는 노드에 '오염'을 추가하는 것과 유사합니다. 파드가 특정 노드에 스케줄되기 위해서는 그 노드의 taint에 맞는 'toleration'을 가지고 있어야 합니다.

Taint와 Toleration

  • Taint: 노드에 적용되어, 특정 조건을 만족하지 않는 파드의 스케줄링을 방지합니다.
  • Toleration: 파드에 적용되어, 특정 taint를 용인할 수 있음을 나타냅니다. toleration을 가진 파드는 해당 taint가 있는 노드에 스케줄될 수 있습니다.

Taint의 구성 요소

  • Key: taint의 이름을 식별하는 키입니다.
  • Value: taint에 할당된 값입니다.
  • Effect: taint가 파드에 미치는 영향을 정의합니다. 일반적인 영향은 다음과 같습니다:
  • NoSchedule: 이 taint가 있는 노드에는 toleration이 없는 파드가 스케줄되지 않습니다.
  • PreferNoSchedule: 쿠버네티스 시스템은 가능한 한 이 taint가 있는 노드에 toleration이 없는 파드를 스케줄하지 않으려고 시도합니다.
  • NoExecute: 이 taint가 있는 노드에서 toleration이 없는 파드는 즉시 종료되며, 새로운 파드는 스케줄되지 않습니다.

사용 케이스

  • 특정 노드에 파드 스케줄링 제한: 예를 들어, 특정 작업에 적합한 높은 사양의 노드나 특수한 하드웨어를 가진 노드에만 일부 파드가 스케줄되도록 하고 싶을 때 사용합니다.
  • 노드 보호: 시스템이나 관리 목적의 노드를 일반 파드가 사용하지 못하도록 보호할 때 사용합니다.

taint와 toleration은 쿠버네티스 클러스터에서 파드가 특정 노드에 배포되는 방식을 세밀하게 제어할 수 있는 강력한 도구입니다. 

반응형