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에 대해서 스케쥴링이 새로 시작하고 잠시후 확인해 보면 여러 노드에 균등하게 분배됨을 알 수 있다.
Leave kubernetes 에서 Pod 균등 분배하기 to:
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 해리슨
- kubernetes 에서 Pod 균등 분배하기
- Namecheap 에서 GCP용 SSL 인증서 만들기
- GCP의 새로운 Memorystore - Redis 벤치마크
- GCP의 새로운 Memorystore - Redis 출시
- Google Kubernetes Engine 에서 Private Network 접속하기
- Kubernetes in Google Cloud Platform - (2)
- Kubernetes in Google Cloud Platform - (1)
- Google Container Registry를 활용한 이벤트 트리거
- Google App Engine 을 이용한 자동배포 - 2
- Google App Engine 과 Git을 이용한 자동 배포