Chuyển đến nội dung chính

レッスン 6: 最初の Kubernetes HA コントロール プレーンの初期化

HA トポロジ用の kubeadm-config.yaml を作成し、VIP としてコントロール プレーン エンドポイントを使用して master1 で kubeadm init を実行し、証明書を処理し、kubeconfig をコピーして、最初のクラスターのステータスを確認します。

🔒 DevSecOps — レッスン 6 レッスン 6: Kubernetes HA コントロールの初期化 最初の面

Kubernetes HA を使用してマイクロサービスをオンプレミスにデプロイ

パート 2: kubeadm を使用した Kubernetes HA クラスター__HTMLTAG_62___

xdev.asia

🎯 レッスンの目的__HTMLTAG_68___

このレッスンを完了すると、次のことができるようになります:

  • ✅ HA トポロジ用の kubeadm 構成ファイルを作成__HTMLTAG_73___
  • ✅ 最初のコントロール プレーンが正常に初期化されました
  • ✅ 証明書の構造と証明書のローテーションを理解する__HTMLTAG_77___
  • ✅ kubeconfig をコピーし、kubectl を使用してクラスターにアクセス
  • ✅ スタック型 etcd トポロジと外部 etcd
  • の理解

パート 1: KUBERNETES HA トポロジー

1.1.スタック etcd と外部 etcd

オプション A: スタック etcd (ほとんどの場合に推奨)

コードブロック_0

✅ 少数のサーバー · ✅ シンプル · ❌ etcd + API の結合

オプション B: 外部 etcd

コードブロック_1

✅ 分離 · ✅ 独立したスケーリング · ❌ 6 台のサーバーが必要

👉 このコースにはスタック etcd を選択します。シンプルで、ほとんどの実稼働ワークロードに十分です。外部 etcd は、非常に大規模なクラスター (100 ノード以上) の場合にのみ必要です。


パート 2: KUBEADM 構成の作成

2.1. kubeadm-config.yaml の詳細

___コードブロック_2___

2.2.重要なパラメータの説明

と一致します
パラメータ 値 意味
controlPlaneEndpoint 10.10.20.100:6443 HAProxy VIP — すべてのコンポーネントはここ経由で接続
podSubnet 10.244.0.0/16 ポッド IP の CIDR (最大 65,534 ポッド)
サービスサブネット 10.96.0.0/12 ClusterIP サービスの CIDR (1,048,574 IP)
モード: ipvs kube-proxy IPVS 負荷分散 (サービスが多い場合は iptables よりも優れています)
strictARP: true kube-proxy _MetalLB L2 モードに必要
cgroupドライバー: systemd kubelet containerd SystemdCgroup = true

⚠️ CRITICAL: controlPlaneEndpoint master1 の IP ではなく、VIP (HAProxy) を指さなければなりません。これは HA の重要な要素です。


パート 3: クラスターの初期化

3.1.監査ログ ディレクトリを作成

___コードブロック_3___

3.2. kubeadm init

を実行します。 ___コードブロック_4___

⚠️ すぐに呼び出します:

  • --token: 結合ノードに使用されます (24 時間後に期限切れになります)
  • --discovery-token-ca-cert-hash: CA 証明書の SHA256 ハッシュ
  • --certificate-key: コントロール プレーン ノードに参加するために使用されます (2 時間後に期限切れになります)

3.3. kubeconfig

のセットアップ ___コードブロック_5___

パート 4: 証明書の構造

4.1.アーキテクチャ証明書_

___コードブロック_6___

4.2.証明書の有効期限を確認

___コードブロック_7___

パート 5: 準備状況を確認

5.1. VIP 経由で API サーバーを確認

___コードブロック_8___

5.2.結合コマンドの保存 (重要!)

___コードブロック_9___

💡 重要なポイント

  1. controlPlaneEndpoint は、特定の IP ではなく、VIP (HAProxy) を指す必要があります
  2. _スタックされた etcdほとんどのデプロイメントに十分、etcd はコントロール プレーンで実行されます
  3. --upload-certs フラグは、コントロール プレーンに参加するための証明書を自動的に配布します
  4. _トークンの有効期限は 24 時間です、証明書キーの有効期限は 2 時間です — すぐに保存してノードに参加する必要があります
  5. kube-proxy の ipvs モード + strictARP は MetalLB
  6. の要件です
  7. CNI (Cilium) をインストールする前はノードのステータス NotReady は正常

🎯 演習

演習 1: コントロール プレーンの初期化__HTMLTAG_243___
  • master1 に kubeadm-config.yaml を作成
  • kubeadm init --config --upload-certs
  • を実行します。
  • kubeconfig をセットアップし、kubectl がノードを取得することを確認
  • 結合コマンドを呼び出します

演習 2: 証明書を確認する

  • /etc/kubernetes/pki/
  • 内のすべての証明書をリストします
  • kubeadm certs check-expiration を実行
  • VIP 経由で API サーバーを確認します:curl -sk https://VIP:6443/healthz

📚 次の投稿

__HTMLTAG_268___レッスン 7: コントロール プレーンとワーカー ノードの結合では、master2、master3 を HA コントロール プレーンに結合し、ワーカー ノードをクラスターに結合します。