본문 바로가기

K8S/Scheduling7

Taints and Tolerations⭐⭐⭐ 쿠버네티스에서 노드 간의 스케쥴링과 pod의 배치를 제어하는 데에 Taints 와 Tolerations 가 사용됩니다. 이를 통해 특정 노드에서 실행되길 원치 않는 파드를 특정할 수 있습니다. Taint 는 노드에, Toleration은 파드에 설정됩니다. Taints Taint는 노드에 부착되는 레이블과 유사한 메커니즘으로, 다른 점은 반대의 의미를 갖고 있다는 것입니다. 테인트를 설정하면 해당 노드에서 실행되길 원치 않는 pod 를 정의할 수 있습니다. 특정 노드에 특별한 요구사항이 있는 경우, 이 노드에 테인트를 추가하여 다른 파드가 그 노드에 스케쥴링 되는 것을 방지합니다. node affinity와 다른 점은, node affinity는 pod가 특정 노드를 선택하게 하는 속성이었다면 taint.. 2024. 1. 18.
[Scheduling] Pod Scheduling Process, nodeName 파드가 노드에 배포되기까지 스케쥴러는 쿠버네티스 시스템 컴포넌트 중 하나이며, 클러스터 내의 노드 간에 파드를 균등하게 분산시키고 리소스를 효과적으로 활용하기 위해 노력합니다. 또한, 스케쥴러는 사용자가 지정한 제약 조건과 우선순위를 고려하여 파드를 적절한 노드에 배치함으로써 클러스터의 안정성과 효율성을 유지합니다. Pod 생성 요청 스케쥴러는 Api Server를 통해 노드가 할당되지 않은 파드 감지 스케쥴러가 파드를 스케쥴링 큐에 추가 스케쥴러는 파드가 어느 노드에서 실행될지를 결정하기 전에 노드에 대한 우선순위 및 제약 조건을 평가 이러한 우선순위 및 제약 조건은 스케쥴링 알고리즘에 의해 설정될 수 있으며, 예를 들어 리소스 요구 사항, 라벨 선택, 노드의 부하 등이 고려됩니다. 스케쥴러는 파드를 .. 2024. 1. 18.
Labels & Selectors 쿠버네티스에서 Labels 와 Selectors 는 리소스를 효과적으로 그룹화하고 필요한 리소스를 선택하기 위한 도구로 사용됩니다. Labels 1) 역할 레이블은 쿠버네티스 리소스에 부가적인 메타데이터를 추가합니다. 리소스를 특정 속성, 환경, 역할 등으로 식별하고 분류하는 데 활용합니다. 2) 구조 및 예시 레이블은 key-value 쌍으로 이루어져 있습니다. Pod, Replicaset 등의 리소스에 레이블을 부여할 수 있습니다. ex) app: frontend apiVersion: v1 kind: Pod metadata: name: simple-webapp **labels: app: App1 function: Front-end** spec: containers: - name: simple-weba.. 2024. 1. 18.