Community post
kubernetes 에서 Pod 균등 분배하기

쿠베를 사용하다 보니, 특정 노드에 모든 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에 대해서 스케쥴링이 새로 시작하고 잠시후 확인해 보면 여러 노드에 균등하게 분배됨을 알 수 있다.
Replies (2)
Congratulations @calmlake79! You received a personal award!
Click here to view your Board
Congratulations @calmlake79! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!