인프런 커뮤니티 질문&답변
deploy-topologyspreadconstraints.yaml의 maxSkew에 대해 질문이 있습니다!
작성
·
727
0
안녕하세요! 강의에서 노드3에 12개의 파드가 배포되어있는 상태에서 배포를 하였을 때, 노드1과 노드4에 2개의 파드가 배포되는 부분에 대해 질문이 있습니다.
deploy-topologyspreadconstraints.yaml에서 region과 zone 모두 maxSkew가 현재 1로 설정되어 있습니다.
그러면 region별로는 파드의 수가 1이상 차이나면 안되고, zone에서도 마찬가지라고 생각했습니다.
region에서는 이것이 잘 적용이 된 것 같은데, zone에서는 노드1과 노드4에 각각 2개씩 배포가 되어 maxSkew가 안지켜진 것으로 보입니다.(zone안에서의 노드끼리는 파드 수가 2개가 차이나므로)
퀴즈
쿠버네티스 스케줄러가 아닌 Kubelet에 의해 직접 관리되며, 주로 클러스터 컴포넌트 배포에 사용되는 오브젝트는 무엇일까요?
Node
Pod
Static Pod
Deployment
답변 1
1
안녕하세요, 김건우님.
튜터 비모입니다.
이미 알고계신 내용이지만, 해당 강의(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/
혹시 추가로 궁금하신 점이 있으면 남겨주세요
감사합니다 :)





