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

レッスン 5: すべてのノードにコンテナーと Kubeadm をインストールする

cri プラグイン、crictl、kubeadm、kubelet、kubectl の最新バージョンを含むcontainerd 2.xをインストールします。 systemd cgroup ドライバーを使用するようにcontainerdを構成し、クラスターを開始する前にサンドボックスイメージをプルしてテストします。

🔒 DevSecOps — レッスン 5 レッスン 5: にコンテナーと KBEADM をインストールする すべてのノード

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

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

xdev.asia

🎯 レッスンの目的__HTMLTAG_68___

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

  • ✅ CRI プラグインを使用してcontainerd コンテナー ランタイムをインストール
  • ✅ systemd cgroup driver__HTMLTAG_75___ を使用してcontainerdを構成する
  • ✅ 公式リポジトリから kubeadm、kubelet、kubectl をインストール
  • ✅ コンテナーをデバッグするために crictl をインストールする__HTMLTAG_79___
  • ✅ サンドボックス画像を事前にプルし、すべての準備が整っていることを確認します

パート 1: コンテナ ランタイム — コンテナを使用する理由

1.1. K8s のコンテナ ランタイムの歴史

___コードブロック_0___

1.2。コンテナー対 CRI-O

基準 コンテナ CRI-O
メンテナ CNCF (Docker/Moby オリジン) CNCF (Red Hat オリジン)
採用 非常に広い (デフォルトの EKS、GKE、AKS) OpenShift、RHEL 中心
特徴 多目的 (Docker CLI 互換) K8s のみ (軽量)
イメージのビルド nerdctl/buildkit 経由でサポート いいえ (podman/buildah が必要)
_安定性 非常に安定しています 安定

👉 コンテナを選択: 最も人気があり、多くのドキュメントがあり、すべての K8 ディストリビューションと互換性があります。


パート 2: コンテナのセットアップ

2.1. Docker 公式リポジトリからインストール

___コードブロック_1___

2.2.コンテナーの構成

___コードブロック_2___

🔬 詳細 — SystemdCgroup = true である理由

___コードブロック_3___

2.3.詳細なcontainerd構成(オプションのチューニング)

___コードブロック_4___

2.4.再起動してcontainerd

を確認する ___コードブロック_5___

パート 3: CRICTL セットアップ

3.1. crictl とは何ですか?

crictl は、CRI 互換コンテナ ランタイム用の CLI ツールです。 docker CLI に似ていますが、CRI 用:

コードブロック_6

3.2. Crictl 構成

___コードブロック_7___

パート 4: KBEADM、KUBELET、KUBECTL のインストール

4.1. Kubernetes リポジトリの追加

___コードブロック_8___

4.2. kubelet

を有効にする ___コードブロック_9___

4.3. kubectl Bash の完了

___コードブロック_10___

パート 5: プレプル画像

5.1. init

の前に K8s イメージをプルします ___コードブロック_11___

💡 ヒント: ノードがインターネットにアクセスできない場合は、インターネットのあるマシンでイメージをプルし、tar にエクスポートしてから、ノードにインポートします:

___コードブロック_12___

パート 6: フライト前チェック

6.1. kubeadm プリフライト チェック

___コードブロック_13___

💡 重要なポイント

  1. containerd は、Docker 公式リポジトリ
  2. からインストールされる標準コンテナ ランタイムです。
  3. SystemdCgroup = true は必須です — kubelet cgroup driver
  4. と一致する必要があります
  5. kubeadm、kubelet、kubectl を pkgs.k8s.io からインストールしてから、__HTMLTAG_222___apt-markhold して自動アップグレードを回避します
  6. イメージの事前プル は、クラスターの初期化時間を節約します。エアギャップ環境では特に重要です
  7. プリフライトチェックは、kubeadm init
  8. を実行する前に問題を検出するのに役立ちます

🎯 演習

_演習 1: すべてのノードにインストール__HTMLTAG_238___
  • containerd + kubeadm を 6 つのノードすべて (マスター 3 個 + ワーカー 3 個) にインストール
  • ノードごとに SystemdCgroup = true を確認
  • 3 つのマスター ノードで K8s イメージを事前プル
  • プリフライト チェック スクリプトを実行し、すべてが PASS
  • であることを確認します。

_演習 2: エアギャップ画像転送

  • K8s イメージを tar ファイルにエクスポート
  • _インターネットのないノードに転送__HTMLTAG_255___
  • 利用可能な画像をインポートして確認

📚 次の投稿

__HTMLTAG_263___レッスン 6: 最初の Kubernetes HA コントロール プレーンの初期化__HTMLTAG_264___ では、HA 構成を使用して master1 で kubeadm init を実行し、クラスター証明書と kubeconfig を作成します。