___  ___    _ _    _  _ _____   _____
 / __|/ _ \  | | |  | || |_ _\ \ / / __|
| (_ | (_) | |_  _| | __ || | \ V /| _|
 \___|\___/    |_|  |_||_|___| \_/ |___|

 --- A GOPHER-LIKE INTERFACE FOR HIVE BLOCKCHAIN ---

kubernetes 에서 Pod 균등 분배하기

BY: @calmlake79 | CREATED: May 14, 2018, 9:52 a.m. | VOTES: 1 | PAYOUT: $0.00 | [ VOTE ]

[IMAGE: https://steemitimages.com/DQmS8YruQ3Mi6NoVfcZU9zbQBkQAFfbA2zWsG3ye1QUiy1J/screenshot%202018-05-14%2017.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에 대해서 스케쥴링이 새로 시작하고 잠시후 확인해 보면 여러 노드에 균등하게 분배됨을 알 수 있다.

TAGS: [ #kubernetes ] [ #pod ] [ #spread ] [ #gcp ] [ #gke ]

Replies

@steemitboard | Jan. 25, 2019, 6:27 a.m. | Votes: 0 | [ VOTE ]

Congratulations @calmlake79! You received a personal award!

https://steemitimages.com/70x70/http://steemitboard.com/@calmlake79/birthday1.pngHappy Birthday! - You are on the Steem blockchain for 1 year!

Click here to view your Board

> Support SteemitBoard's project! Vote for its witness and get one more award!

@steemitboard | Jan. 25, 2020, 5:14 a.m. | Votes: 0 | [ VOTE ]

Congratulations @calmlake79! You received a personal award!

https://steemitimages.com/70x70/http://steemitboard.com/@calmlake79/birthday2.pngHappy Birthday! - You are on the Steem blockchain for 2 years!

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!
[ BACK TO TRENDING ] [ BACK TO MENU ]
CMD>