deploy-topologyspreadconstraints.yaml의 maxSkew에 대해 질문이 있습니다!
734
작성한 질문수 13
안녕하세요! 강의에서 노드3에 12개의 파드가 배포되어있는 상태에서 배포를 하였을 때, 노드1과 노드4에 2개의 파드가 배포되는 부분에 대해 질문이 있습니다.
deploy-topologyspreadconstraints.yaml에서 region과 zone 모두 maxSkew가 현재 1로 설정되어 있습니다.
그러면 region별로는 파드의 수가 1이상 차이나면 안되고, zone에서도 마찬가지라고 생각했습니다.
region에서는 이것이 잘 적용이 된 것 같은데, zone에서는 노드1과 노드4에 각각 2개씩 배포가 되어 maxSkew가 안지켜진 것으로 보입니다.(zone안에서의 노드끼리는 파드 수가 2개가 차이나므로)
답변 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/
혹시 추가로 궁금하신 점이 있으면 남겨주세요
감사합니다 :)
섹션2. 1.5쿠버네티스_컨트롤플레인_노드와_워커_노드_그리고 kubeadm으로 쿠버네티스 직접 구성하기-v1.30 오류
0
62
2
[해결] 2.4. tabby config.yaml 파일 복사 실패 시
1
118
1
9.3 Error 발생 유도 테스트 확인 부탁드립니다.
0
110
2
livenessProbe 어플리케이션 재시작 의미
0
79
2
K8S 노들에 접근이 안됩니다.
0
186
6
arm virtualBox의 vagrant up 에러
0
122
2
추후 강의계획 질문
0
160
1
MAC 에서 사용할 수 있는 ova 파일은 없나요?
0
229
2
7.8. w3-affinity-leader 적용 에러 문제 질문드립니다.
0
226
5
커리큘럼 순서 문의
0
220
2
apply 실행 후 pod상태가 ContainerCreating 에서 변경이 안됩니다.
0
379
2
livenessProbe에 대한 설명이 조금 부족한거 같네요
0
228
3
controlplane_node.sh 실행 오류 문의
0
255
2
예제폴더의 경로와 영상의 경로가 너무나도 다릅니다
0
227
2
9.6강의 소스 수정 요청 및 에러 문의
0
174
2
8.6 강의 중 sysnet4admin/chk-info 이미지 bash 이슈
0
169
3
드디어 맥에서도 virtualbox가 지원 됩니다.
0
299
2
8.3강의 set-ctx-pod-admin.sh 수정 요청
0
130
3
7.5 강의 tardy-nginx 이미지 문제
0
3317
3
ch1. controlplan_node.sh 실행 시 에러가 뜹니다
0
315
3
Kubenetes 클러스터에 추가적으로 신뢰하는 CA를 넣을 수 있나요?
0
193
1
clusterrolebinding의 --namespace 옵션의 역할
0
173
2
A.0003 파일 vagrant file 수정 (자문자답)
0
174
2
nfs-client-provisioner 관련 생성 오류 질문
0
197
1





