고 가용성 클러스터는 Kubernetes 구축

알리 구름 SLB 부하 분산을 고 가용성 클러스터링을 구축하는 마스터 노드로 세 개의 서버 (K8S-master0, K8S-MASTER1, K8S-MASTER2)를 사용하여 알리 구름, 알리 클라우드 백엔드 서버로드 밸런싱으로 인해이 지원되지 않음에 유의해야한다 전달을위한 자신의 마스터 노드 제어 평면 엔드 포인트가로드 밸런싱을 수행 할 수 있도록.

첫째 K8S-master0, 설치 절차에 설치 K8S는 참조 우분투 설치가 트로이카 kubeadm kubectl kubelet K8S 후 스냅 샷 생성 알리 구름 ECS 거울을했다.

제어 평면 엔드 포인트 호스트 이름을 결정, 여기에 가정 k8s-api호스트 K8S-master0의 분석 K8S-API에 추가했다.

10.0.1.81       k8s-api

K8S-master0에 클러스터를 작성,

kubeadm init \
    --control-plane-endpoint "k8s-api:6443" --upload-certs \
    --image-repository registry.aliyuncs.com/google_containers \
    --pod-network-cidr=192.168.0.0/16 \
    --v=6

생성되면 다음 사항을 표시한다

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

You can now join any number of the control-plane node running the following command on each as root:

  kubeadm join k8s-api:6443 --token ****** \
    --discovery-token-ca-cert-hash ****** \
    --control-plane --certificate-key ******

Please note that the certificate-key gives access to cluster sensitive data, keep it secret!
As a safeguard, uploaded-certs will be deleted in two hours; If necessary, you can use
"kubeadm init phase upload-certs --upload-certs" to reload certs afterward.

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join k8s-api:6443 --token ****** \
    --discovery-token-ca-cert-hash ******

Aliyun의 ECS는 다른 마스터 노드로서 서버 (2)와 K8S-MASTER1 K8S-MASTER2을 만들기 전에 만든 미러링, 두 서버의 호스트 K8S-API의 K8S-master0의 IP 주소를 확인 할 수 있습니다.

이어서 별도로 로그인 kubeadm 첨가 K8S-MASTER1 제어 플레인의 노드는 이전에 마스터 클러스터 이들 두 서버 얻어 명령 K8S-MASTER2 가입.

그런 다음, 다음 명령을 실행하는이 세 가지 마스터 노드에 로그인 :

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

위의 명령을 실행하지 않는 경우, kubectl GET 노드가 다음과 같은 오류 메시지가 나타납니다 실행

The connection to the server localhost:8080 was refused - did you specify the right host or port?

다음 호스트 K8S-API의 K8S-MASTER2 뒤를 로그 K8S-MASTER1는 시스템의 IP 주소를 확인합니다.

이제이 세 마스터 노드가 클러스터에 합류했지만, kubectl GET 포드를 통해보기 CNI 네트워크 플러그에는 배포가 없기 때문에 세 개의 노드가, NotReady 상태에 있습니다.

다음 단계는 우리가 옥양목 네트워크와 여기에이 같은 네트워크 플러그인을 배포하는 것입니다,

kubectl apply -f calico.yaml

옥양목 네트워크 구축이 성공하면, 세 개의 마스터가 실행 상태를 입력해야합니다, 마스터 노드 배포가 완료되었습니다.

다음 단계는 작업자 노드를 배포하는 것입니다.

마스터 노드에 균형을 알리 클라우드 액세스 API를 서버 부하에 의한 작업자 노드는 먼저 TCP 6443 포트 네 앞으로 추가, 클라우드 알리 균형 개인 네트워크 부하를 생성하고, 세 개의 마스터 노드의 서버를 탑재합니다.

다음 단계는 생성 작업자 노드 서버를 계속하기 전에 알리 클라우드 ECS의 미러 이미지를 만들 수 있으며, 각 서버 호스트 K8S-API의로드 밸런싱 알리의 IP 주소로 확인 후 이전에 생성 된 작업자 노드로 추가 kubeadm join k8s-api:6443명령이 서버 클러스터.

이러한 고 가용성 클러스터 K8S는 응용 프로그램을 배포 할 수 있습니다, 더 나은 구축 할 수 있습니다. 제대로 작동하는 경우에만 두 개 이상의 마스터 정상 클러스터, 뗏목 합의 알고리즘에 따라, 세 개의 마스터와 지금을합니다.

추천

출처www.cnblogs.com/dudu/p/12168433.html