アリ雲の高可用性クラスタリングを構築するために、マスタノードとして(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つのマスターとなりましたことに注意してください。