작성
·
293
0
deployment-anti-podAffinity.yaml 실행했을 때 w2-k8s 2개, w3-k8s 2개의 배포 됩니다.
scale 명령으로 파드수를 줄였다가 늘려 보아도 동일합니다.
[root@m-k8s 7.8]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
deploy-anti-podaffinity-7865bcd85-b55tb 1/1 Running 0 10s 172.16.132.28 w3-k8s <none> <none>
deploy-anti-podaffinity-7865bcd85-g87kp 1/1 Running 0 10s 172.16.132.23 w3-k8s <none> <none>
deploy-anti-podaffinity-7865bcd85-kw7kp 1/1 Running 0 10s 172.16.103.180 w2-k8s <none> <none>
deploy-anti-podaffinity-7865bcd85-z99xl 1/1 Running 0 10s 172.16.103.181 w2-k8s <none> <none>
답변 3
0
2022. 09. 08. 12:03
안녕하세요
Pod 안티 패턴의 경우 일부 명세(Manifests)가 수정되어 업데이트 드립니다.
podAffinity의 공식 도큐먼트 설명은 안티 패턴이긴 한데....
디자인적으로는 NotIn
의 경우 그러한 레이블이 없길 바란다. 라는 의미라고 합니다.
(이와 같은 철학으로 자매품 DoesNotExist
가 있습니다.)
관련 링크:
Issue - Pod affinity with operator "NotIn" does not work #106795
Issue - Pod affinity with operator "DoesNotExist" does not work #90679
design-proposals-archive - Inter-pod topological affinity and anti-affinity
따라서 podAffinity를 podAntiAffinity로 수정하여 해당 기능을 구현하였습니다.
이에 따라 Operator도 NotIn에서 In으로 수정되었습니다. 수강에 참고 부탁드립니다.
이와 관련한 설명 문서는 다음과 같습니다.
Inter-pod affinity and anti-affinity
테스트 결과는 다음과 같습니다.
#bash
[root@m-k8s 7.8]# k get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
deploy-podaffinity-65cbd4f977-4cxxv 1/1 Running 0 63m 172.16.221.136 w1-k8s <none> <none>
deploy-podaffinity-65cbd4f977-9sk2j 1/1 Running 0 63m 172.16.132.2 w3-k8s <none> <none>
deploy-podaffinity-65cbd4f977-w5vqr 1/1 Running 0 64m 172.16.221.133 w1-k8s <none> <none>
deploy-podaffinity-65cbd4f977-xmttc 1/1 Running 0 63m 172.16.132.3 w3-k8s <none> <none>
w1-affinity-leader 1/1 Running 0 65m 172.16.221.131 w1-k8s <none> <none>
w3-affinity-leader 1/1 Running 0 64m 172.16.132.1 w3-k8s <none> <none>
#bash
[root@m-k8s 7.8]# k apply -f deployment-anti-podAffinity.yaml
deployment.apps/deploy-anti-podaffinity created
#bash
[root@m-k8s 7.8]# k get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
deploy-anti-podaffinity-fbf5cbf8d-557zz 1/1 Running 0 86s 172.16.103.139 w2-k8s <none> <none>
deploy-anti-podaffinity-fbf5cbf8d-5hcx5 1/1 Running 0 86s 172.16.103.136 w2-k8s <none> <none>
deploy-anti-podaffinity-fbf5cbf8d-9x4zm 1/1 Running 0 86s 172.16.103.138 w2-k8s <none> <none>
deploy-anti-podaffinity-fbf5cbf8d-jx4pb 1/1 Running 0 86s 172.16.103.137 w2-k8s <none> <none>
deploy-podaffinity-65cbd4f977-4cxxv 1/1 Running 0 65m 172.16.221.136 w1-k8s <none> <none>
deploy-podaffinity-65cbd4f977-9sk2j 1/1 Running 0 65m 172.16.132.2 w3-k8s <none> <none>
deploy-podaffinity-65cbd4f977-w5vqr 1/1 Running 0 66m 172.16.221.133 w1-k8s <none> <none>
deploy-podaffinity-65cbd4f977-xmttc 1/1 Running 0 65m 172.16.132.3 w3-k8s <none> <none>
w1-affinity-leader 1/1 Running 0 66m 172.16.221.131 w1-k8s <none> <none>
w3-affinity-leader 1/1 Running 0 65m 172.16.132.1 w3-k8s <none> <none>
0
2022. 09. 05. 10:33
pod-antiAffinity 설정후 pod 4개 배포시 w2-k8s 쪽으로 파드 4개가 모두 배포 되는 걸로 실습 예제에 나와 있는데요. 실제 실행을 해 보니 w2-k8s쪽 2개, w3-k8s쪽 2개로 배포가 되어서 생성된 파드를 scale 명령으로 replicas=1로 배포하고 다시 scale 명령으로 replicas=4로 배포를 했습니다.
결과가 w2-k8s쪽 2개, w3-k8s쪽 2개로 배포되어서 왜 이렇게 배포가 되는지 궁금해서 문의 했습니다.
2022. 09. 07. 05:11
감사합니다. 확인 후 답변 업데이트 드리겠습니다 :)