高可用性クラスタKubernetesを構築

アリ雲の高可用性クラスタリングを構築するために、マスタノードとして(K8S-master0、K8S-MASTER1、K8S-MASTER2)3台のサーバを使用して、アリ雲SLB、アリとロードバランシングは、クラウドバックエンドサーバーの負荷分散のためには、サポートされていないことに留意すべきです前方に自分のために、マスターノード制御プレーン・エンドポイントは、ロードバランシングを取ることができないようにします。

最初K8S-master0、インストール手順にインストールK8Sは、参照Ubuntuのインストールはトロイカ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を作成する前に作成したミラーリング、および2台のサーバーのホストK8S-APIのK8S-master0にIPアドレスを解決します。

次いで、別々にログオンしkubeadmの添加K8S-MASTER1制御プレーンノードは、以前にマスタクラスタとしてこれら二つのサーバを用いて得られたコマンドK8S-MASTER2に参加します。

次に、以下のコマンドを実行しているこの3つのマスター・ノードにログインします。

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アドレスを解決します。

現在、これらの3つのマスターノードがクラスタに参加しているが、kubectlのgetビューには、ポッドは、CNIネットワークプラグのない展開がないので、3つのノードは、準備中]状態になっているでしょう。

次のステップは、我々はキャラコネットワークとここに持っているような、ネットワークプラグインを導入することで、

kubectl apply -f calico.yaml

キャラコネットワーク展開が成功した場合には、3つのマスターが実行状態を入力する必要があります、マスターノードの展開が完了しました。

次のステップは、ワーカーノードを展開することです。

マスターノード上でバランスをとるアリクラウドアクセスAPI - サーバーの負荷により、ワーカーノードは、最初のTCP 6443ポート用の4前方を追加し、クラウド・アリのバランスをとるプライベートネットワーク負荷を作成し、3つのマスター・ノード・サーバをマウントします。

次のステップは、作成ワーカーノードサーバを続行する前にアリクラウドECSの鏡像を作成することで、各サーバのホストK8S-APIの負荷分散におけるアリのIPアドレスに解決し、以前に生成されたワーカーノードを追加kubeadm join k8s-api:6443コマンドこれらをサーバークラスタ。

このような高可用性クラスタK8Sは、アプリケーションをデプロイすることができ、より良い構築します。正常に機能する場合にのみ、少なくとも2つのマスタ通常のクラスタ、ラフトコンセンサスアルゴリズムに従って、3つのマスターとなりましたことに注意してください。

おすすめ

転載: www.cnblogs.com/dudu/p/12168433.html
おすすめ