kimsehwan96 / k8s-cluster-provisioner

Simple K8s Cluster Provisioner with Ansible
1 stars 0 forks source link

HA 클러스터 지원 시, 외부 LB 사용하지 않는 경우 local LB 를 사용하고 (worker nodes), 그렇지 않은경우 + hosts 에 LB 를 지정(HAProxy)하는경우 external LB 동작. #18

Open kimsehwan96 opened 8 months ago

kimsehwan96 commented 8 months ago

ref : https://github.com/kubernetes-sigs/kubespray/blob/master/docs/ha-mode.md

kubespray 의 경우 HA 클러스터 지원시 외부 LB 세팅을 하지 않으면

각 워커노드에 HAProxy 혹은 Nginx 를 프록시로 두어. 각 워커노드는 localhost: 로 요청하고 그것을 프록시서버가 실제 컨트롤 플레인에 있는 kube-apiserver 중 하나로 프록싱 하는 형태로 되어있습니다.

컨트롤 플레인의 컴포넌트(kubelet + 기타 컨트롤 플레인 컴포넌트)들은 localhost: 로 호출해 당연히 컨트롤 플레인에 떠있는 kube-apiserver 를 호출합니다.

반면 외부 LB 를 세팅하게 되면

컨트롤 플레인 뿐만 아니라 모든 컴포넌트, 그리고 워커노드까지 external LB 에게 호출하고, external LBkube-apiserver로 로드밸런싱 해주는 구조입니다.

또한 hosts 그룹에 LB 등을 추가해서 LB 새팅도 이 ansible playbook 에서 처리 할 수 있도록 할 예정입니다.