해리슨 avatar

kubernetes 에서 Pod 균등 분배하기

calmlake79

Published: 14 May 2018 › Updated: 14 May 2018kubernetes 에서 Pod 균등 분배하기

kubernetes 에서 Pod 균등 분배하기

screenshot 2018-05-14 17.59.46.png

쿠베를 사용하다 보니, 특정 노드에 모든 Pod이 몰리는 현상이 발생했다.
이러면 곤란한데...

애초에 쿠베를 사용하는 이유가 모든 노드에 균등하게 부하를 분산시켜서 안정적으로 서비스 하기 위함 + 한대의 서버가 문제가 생겨도 전체적으로 문제없이 서비스를 제공하기 위함인데, 한곳에 몰렸다가 특정서버가 뻗어 버리거나 할경우에는.. 전체적으로 문제가 생길 수도 있고, 다양한 케이스가 발생할 수도 있으니, 방법을 찾아야 했다.

/*
참고자료1 : https://bluefriday.github.io/blog/2017/10/31/Manually-schedule-a-pod-without-a-scheduler/
참고자료2 : https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#never-co-located-in-the-same-node
*/

검색하는 키워드는 어려웠지만, 해결법은 간단.

[ 참고자료2 ] 에서 [ Never co-located in the same node ] 부분을 참조하면 된다.

spec:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: app
                operator: In
                values:
                - app-name
            topologyKey: "kubernetes.io/hostname"

( 여기서 app-name 은 해당 workload 이름이다 )

위의 자료대로 YAML을 업데이트 하고 나면 잠시 경고 메시지가 뜬뒤 해당 workload에 대해서 스케쥴링이 새로 시작하고 잠시후 확인해 보면 여러 노드에 균등하게 분배됨을 알 수 있다.

Leave kubernetes 에서 Pod 균등 분배하기 to:

Written by

안녕하세요 해리슨입니다.

Read more #kubernetes posts


Best Posts From 해리슨

We have not curated any of calmlake79's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From 해리슨