Kubernetes

2026年版 Kubernetes クラスタ構築手順 – Ubuntu24.04/ Rocky9.4 とPodman・Calico・ArgoCD

ⓘ本ページはプロモーションが含まれています

お得なお知らせ

スポンサードリンク
1ヶ月で資格+現場入り

インフラエンジニアへの最短ルート

未経験でもAWS・Linux・ネットワーク資格を最短で取り、現場入りまでサポート。SREやクラウドエンジニアの入口。

CODE×CODEスピード転職|無料面談▶ SRE/クラウドのフリーランス案件▶

▶ AWS/GCP/Kubernetesの独学には Kindle Unlimited の技術書読み放題がコスパ最強。


Contents

スポンサードリンク

1. OS とカーネル要件の確認・設定

1-1. カーネルが cgroup v2 を使用しているか確認

Tip:もし cgroup2 が見当たらない場合は、ブートパラメータに systemd.unified_cgroup_hierarchy=1 を追加し、再起動してください。

1-2. 必要なカーネルモジュールと sysctl の永続化


2. コンテナランタイムと Kubernetes コンポーネントのインストール

2-1. 前提:Helm が未インストールの場合

※ Helm は sudo が不要なユーザー領域にインストールされますが、システム全体で使用したい場合は /usr/local/bin/helm へ配置してください。

2-2. Podman + CRI‑O(cgroup v2 対応)

a. 必要パッケージの取得とリポジトリ設定(Ubuntu 例)

b. CRI‑O の有効化と Podman 連携

Tipcrio status で状態を確認し、systemd cgroup driver が有効になっていることを必ずチェックしてください。

2-3. (代替)containerd のインストール手順

2-4. Kubernetes パッケージ(v1.30 系)と cgroup driver の統一

a. apt リポジトリの追加(signed‑by を使用)

b. バージョン指定でインストール

重要/var/lib/kubelet/config.yaml が存在しない場合は kubeadm init 時に自動生成されますが、手動で作成しておくと後続のアップグレード時に設定が失われにくくなります。


3. クラスタ初期化(control‑plane)とネットワーク設定

3-1. スワップ無効化 & 永続化

3-2. 必要な sysctl 設定(再掲)

3-3. kubeadm init の実行例

ポイント
- --cgroup-driver フラグは Kubernetes v1.24 以降廃止され、代わりに kubelet の設定ファイルで管理します。上記では systemd が既に設定済みです。
- 初期化が成功すると kubeadm join ... コマンドが出力されますので、ワーカーノードへコピーしてください。

3-4. kubeconfig の取得(ローカルから kubectl 使用可能に)


4. Pod ネットワーク(Calico)構築

4-1. Calico の最新安定版マニフェスト取得と eBPF 有効化

※ 本手順は Calico v3.x 系の最新版(例: v3.27.0)を対象にしています。v4 系が正式リリースされた場合は公式ドキュメントをご確認ください。

4-2. ネットワーク動作確認

期待結果ping がすべて成功し、ステータスコード 0 が返ること。


5. GitOps 基盤 – Argo CD の Helm インストールと OIDC 設定

5-1. Helm による Argo CD デプロイ(事前に Helm がインストール済みであること)

a. OIDC 用シークレットの事前作成(環境変数に依存しない)

b. values.yaml(OIDC 設定込み)

ポイント
- clientSecret は環境変数ではなく Helm の values.yaml に埋め込むか、Kubernetes Secret から注入します。これによりデプロイ時のエラーを防げます。
- 本番環境では --insecure フラグは削除し、TLS 証明書(cert‑manager 等)で保護してください。

c. Helm インストール

5-2. Argo CD の外部アクセス確認


6. 運用・保守

6-1. クラスタヘルスチェック

エラー時は以下で詳細ログを取得:

6-2. ワーカーノード追加手順

6-3. クラスタアップグレード(例:1.30 → 1.31 がリリースされた場合)

Tip:アップグレード前に必ず kubectl get nodes で全ノードが Ready か確認し、バックアップ(etcd スナップショット等)を取得してください。

6-4. ポリシーエンフォースメント – OPA Gatekeeper の導入

a. Privileged コンテナ禁止の例(ConstraintTemplate + Constraint)

効果:Pod が securityContext.privileged: true を指定すると API サーバーでリクエストが拒否されます。


7. まとめ

項目 実施内容
OS / カーネル Ubuntu 24.04 LTS または Rocky Linux 9.4、cgroup v2 有効化
カーネルモジュール・sysctl overlay, br_netfilter の永続ロード & 必要 sysctl 設定
コンテナランタイム Podman + CRI‑O(または containerd)を systemd cgroup driver で統一
Kubernetes 本体 v1.30 系、apt リポジトリは signed‑by キーリング方式、kubelet config.yaml に cgroupDriver: systemd 設定
ネットワーク Calico(v3.x)+ eBPF モード有効化、Pod CIDR 192.168.0.0/16 を使用
GitOps Argo CD を Helm でデプロイ、OIDC (Keycloak) は Secret 経由で clientSecret 注入
運用ツール helm, gatekeeper, kubeadm upgrade などの標準フロー
セキュリティ スワップ無効化、OPA Gatekeeper によるポリシー強制、TLS/Ingress の適切な設定

次のステップ
- 本手順を実環境で試す前に、各コンポーネント(Kubernetes, Calico, Argo CD など)の公式ドキュメントを再度確認し、バージョン差異がないか検証してください。
- プロダクション導入時は バックアップ戦略(etcd スナップショット、GitOps 設定のリポジトリ)と 監視基盤(Prometheus + Grafana, Alertmanager)の構築を併せて計画してください。


スポンサードリンク

お得なお知らせ

スポンサードリンク
1ヶ月で資格+現場入り

インフラエンジニアへの最短ルート

未経験でもAWS・Linux・ネットワーク資格を最短で取り、現場入りまでサポート。SREやクラウドエンジニアの入口。

CODE×CODEスピード転職|無料面談▶ SRE/クラウドのフリーランス案件▶

▶ AWS/GCP/Kubernetesの独学には Kindle Unlimited の技術書読み放題がコスパ最強。


-Kubernetes