Kubernetes

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

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

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


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,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Kubernetes