Cloud/Kubernetes

[따배쿠] Appendix1. 멀티마스터 쿠버네티스 클러스터(multi-master - HA Kuberenetes cluster) 운영

Tony Lim 2022. 2. 11. 11:52
728x90

reliability 를 증가시키기 위해서 master node가 여러개이다.

etcd 끼리 항상 동기화되어 있다.

worker 노드들은 마스터와 직접 통신하는 것이 아니라 load balancer 와 통신하게 된다.

 

master 3개 load balancer 1개 worker 2개 총 컴퓨터 갯수가 7개다.

 

 

 

Load Balancer

docker run --name proxy -v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro --restart=always -p 6443:6443 -d nginx 

--restart=always == docker daemon과 함께 항상 같이 실행이 된다.

volume mount를 통해 lb 로 동작하게 한다.

-p == port forwarding

 

curl 10.100.0.254:6443 명령어로 잘 동작하는 지 확인

master 들이  켜져있지 않으므로 이게 정상이다.

 

 

HA cluster 구현 == master node 동기화

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/

 

Creating Highly Available Clusters with kubeadm

This page explains two different approaches to setting up a highly available Kubernetes cluster using kubeadm: With stacked control plane nodes. This approach requires less infrastructure. The etcd members and control plane nodes are co-located. With an ex

kubernetes.io

master 1을 kubeamdin init으로 초기화 하고 LB에 등록 , master 2,3,은 master 1을 리더로 삼는다. 

kubeadm init --control-plane-endpoint "lb.example.com:6443" --upload-certs

다 초기화가 완료되면 join할때 쓰는 token 을 준다. 이걸 이용해 master 2,3 을 master1 에 join한다.

 

연결이 끝났으니 CNI 를 master 1에설치를 한다.

control plane 에서 get pod 를 통해 연결이 되었는지 확인해준다.

이 명령어를 통해 worker node에서도 kubectl get pod 를 쓰게 해주고 확인할 수 있다.

worker node 2개도 인제 lb.example에 연결을 해준다.

 

 

 

 

 

 

728x90