Node Affinity

Watermelon·2026년 1월 29일

CKA 학습 과정

목록 보기
31/35
apiVersion:
kind: Pod
metadata:
  name:
spec:
  containers:
  - name:
    image:
  affinity: ## Node Affinity 설정
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExesution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: size
            operator: In
            values:
            - Large
  • 만약 Large뿐만이 아니라 다른 node에도 넣고 싶다면 values 아래에 라벨을 넣으면 됨
            values:
            - Large
              Medium
          - key: size
            operator: NotIn
            values:
            - Small
  • 제외 시키고 싶은 size가 있다면 위와 같이 변경하면됨
          - key: size
            operator: Exists
  • 크기 비교는 안하고 size라는 key만 존재한다면 toleration 허용

Node Affinity Types

requiredDuringSchedulingIgnoredDuringExecution ## 필수(강제)하도록 하는 옵션
preferredDuringSchedulingIgnoredDuringExecution ## 권장하도록 하는 옵션
  • 강의에서는 avilable planned로 구분지었는데 강제/권장 느낌으로 보는게 나을듯
  • 이러한 분류는 pod 첫 생성 단계에서 이루어짐을 잊지 말자
  • requiredDuring
  • preferredDuring
  • DuringExecution: Ignore 시 pod 생성 이후는 관여 안함
  • 오타에 주의하자..

https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
공식문서에 있는 example을 복사 붙여 넣기하는게 정신 건강에 좋다

  • 솔루션에서는 --dry-run 명령어로 -o yaml >> red.yaml 이런 식으로 만들어서 수정하고 배포하는 방식으로 함
  • 저는 일단 만들고 edit 하는 방식으로 했는데 dry가 좀 더 안전할듯요
profile
많은 경험을 해보고자 하는

0개의 댓글