-
카테고리
-
세부 분야
데브옵스 · 인프라
-
해결 여부
미해결
deploy-topologyspreadconstraints.yaml의 maxSkew에 대해 질문이 있습니다!
22.04.13 11:43 작성 조회수 556
0
안녕하세요! 강의에서 노드3에 12개의 파드가 배포되어있는 상태에서 배포를 하였을 때, 노드1과 노드4에 2개의 파드가 배포되는 부분에 대해 질문이 있습니다.
deploy-topologyspreadconstraints.yaml에서 region과 zone 모두 maxSkew가 현재 1로 설정되어 있습니다.
그러면 region별로는 파드의 수가 1이상 차이나면 안되고, zone에서도 마찬가지라고 생각했습니다.
region에서는 이것이 잘 적용이 된 것 같은데, zone에서는 노드1과 노드4에 각각 2개씩 배포가 되어 maxSkew가 안지켜진 것으로 보입니다.(zone안에서의 노드끼리는 파드 수가 2개가 차이나므로)
답변을 작성해보세요.
1
비모
지식공유자2022.04.13
안녕하세요, 김건우님.
튜터 비모입니다.
이미 알고계신 내용이지만, 해당 강의(7.9 토폴로지 분배 제약 조건)의 예제를 보시면
아래와 같이 4대의 노드 모두 같은 region(region=ap-northeast-2)에 대한 label을 가지고 있으며, zone은 2개(ap-northeast-2a, 2b)로 나누어진 상태입니다.
- node_labels.sh
#!/usr/bin/env bash
kubectl label node w1-k8s topology.kubernetes.io/region=ap-northeast-2 topology.kubernetes.io/zone=ap-northeast-2a
kubectl label node w2-k8s topology.kubernetes.io/region=ap-northeast-2 topology.kubernetes.io/zone=ap-northeast-2a
kubectl label node w3-k8s topology.kubernetes.io/region=ap-northeast-2 topology.kubernetes.io/zone=ap-northeast-2b
kubectl label node w4-k8s topology.kubernetes.io/region=ap-northeast-2 topology.kubernetes.io/zone=ap-northeast-2b
따라서 예제 상에서는 하나의 region만 존재하므로, 파드가 어떤 노드로 분배가 되어도 정상적인 상태입니다.
또한 zone을 기준으로 보면 파드가 ap-northeast-2a에 2개, ap-northeast-2b에 2개로, 각각의 zone에 균등하게 분배되었으므로 maxSkew를 위반한 상태가 아닙니다.
즉 해당 설정은 같은 zone 안의 모든 노드에 파드가 균등하게 배포해야 함을 의미하지 않습니다.
말씀해주신 것처럼 파드가 각 노드에 균등하게 배포되기 위해서는 노드 별로 label을 다르게 부여하고 topologyKey를 해당 값으로 지정해야 합니다.
좀더 상세한 내용이 필요하신 경우 아래 Kubernetes 공식 문서를 참조해주시길 부탁 드립니다.
- 파드 토폴로지 분배 제약 조건
https://kubernetes.io/ko/docs/concepts/workloads/pods/pod-topology-spread-constraints/
혹시 추가로 궁금하신 점이 있으면 남겨주세요
감사합니다 :)
답변 1