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에 대해서 스케쥴링이 새로 시작하고 잠시후 확인해 보면 여러 노드에 균등하게 분배됨을 알 수 있다.
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!