Kubernetes に関する記事を、クラスタ構築、kubectl / kubeconfig、基本リソース、Service、MetalLB、CNI、Helm、Harbor、永続化、MicroK8s、運用トラブルの観点で確認したハブページです。
このブログでは、クラウドマネージド Kubernetes よりも、自宅環境やオンプレミスに近い Kubernetes の検証が多くなっています。そのため、LoadBalancer Service、MetalLB、CNI、BGP、内部レジストリ、送信元アドレス、kubeconfig など、周辺要素も含めて扱います。
同じ記事を複数の節に重複して置くと導線が分かりにくくなるため、このハブでは原則として各記事を一度だけ掲載します。
最初に読む流れ
新しく読む場合は、まずクラスタ構築、kubectl、kubeconfig、マニフェスト、Deployment、Service の順に確認すると全体像をつかみやすくなります。
- Kubernetes クラスター構築 – kubeadm で controlPlaneEndpoint と CNI を確認する
kubeadm でクラスタを作る時の中心記事です。controlPlaneEndpoint、CIDR、CNI、ノード参加をまとめて扱います。 - Kubernetes kubectl の導入 – リモートクラスタを操作する基本
管理端末から Kubernetes API を操作するための kubectl と接続確認を確認します。 - Kubernetes kubeconfig の管理 – 複数クラスタと context を確認する
複数クラスタを扱う時の kubeconfig、context 名、認証情報の管理を確認します。 - Kubernetes マニフェストの apiVersion を理解する
マニフェストの apiVersion、API グループ、kind の関係を確認する基礎記事です。 - Kubernetes Nginx コンテナの実行 – Deployment で Pod を管理する
Nginx を題材に、Pod と Deployment の基本を確認します。 - Kubernetes Nginx コンテナと Service ClusterIP – クラスタ内部通信の入口を作る
ClusterIP Service を使い、クラスタ内部通信の入口を作る考え方を確認します。
クラスタ構築と管理
kubeadm でクラスタを作る場合は、初期化、リセット、証明書、古い手順の読み替えを分けて扱います。
- Kubernetes クラスタの初期化 – kubeadm reset の基本
検証環境でクラスタを作り直す時に、kubeadm reset が戻す範囲と残る状態を確認します。 - Kubernetes コントロールプレーンノードを追加できない場合 – kubeadm-certs を再生成する
control plane 追加時に kubeadm-certs や certificate-key で詰まる場合の確認記事です。 - 古い Kubernetes クラスター構築メモ – kubeadm 手順を現在の記事へ読み替える
古い kubeadm 構築メモを、現在の設計観点へ読み替えるための記事です。
基本リソースと Service
Pod、Deployment、Service は Kubernetes の基本です。ClusterIP、NodePort、LoadBalancer の違いを確認してから、MetalLB や外部公開の設計へ進みます。
- Kubernetes Nginx コンテナと Service NodePort – Node のポート経由でアクセスする
NodePort Service の位置づけと、Node のポート経由でアクセスする意味を確認します。 - Kubernetes Nginx コンテナと Service LoadBalancer – MetalLB で外部 IP を確認する
LoadBalancer Service と MetalLB による外部 IP 割り当てを具体例で確認します。 - Kubernetes に Docker / Podman のような stop/start がない理由
Kubernetes がコンテナ単体ではなく desired state を扱うことを確認します。
LoadBalancer / MetalLB
オンプレミスや自宅環境では、クラウドの LoadBalancer が自動で用意されません。Service 抽象、MetalLB、L2 / BGP、外部 IP、Chart 管理を分けて確認します。
- Kubernetes に LoadBalancer はないのか – Service、MetalLB、CNI BGP を分けて考える
Kubernetes の Service 抽象と、MetalLB や CNI BGP が担う範囲を分けて確認します。 - Kubernetes MetalLB の導入 – LoadBalancer Service をオンプレ環境で成立させる
オンプレ環境で LoadBalancer Service を成立させるための MetalLB の役割を確認します。 - Kubernetes MetalLB を Helm で導入する – オンプレ環境で LoadBalancer Service を使う
Helm を使って MetalLB を導入する時の構成を確認します。 - Kubernetes MetalLB を Helm で導入する – Harbor で Chart を管理する考え方
MetalLB の Chart を Harbor で管理する場合の考え方を確認します。 - Kubernetes で送信元アドレスが変わる問題 – externalTrafficPolicy、hostNetwork、BGP 経路広告で考える
Service 公開時に送信元アドレスが変わる問題を、Service、hostNetwork、BGP の層で切り分けます。
CNI / NetworkPolicy / 通信経路
Kubernetes のネットワークは、CNI、Service、NetworkPolicy、外部経路、送信元アドレスの扱いが絡みます。クラスタ内だけでなく、外部ルーターや BGP との接続も設計対象になります。
- Kubernetes の CNI は何を選ぶべきか – 設計思想と製品制約から現代的な選択肢を整理する
CNI を機能名だけで選ばず、運用責任、サポート境界、既存ネットワークとの関係から判断するための記事です。 - Kubernetes Calico eBPF の設計メモ – kube-proxy replacement / DualStack / HA 構成
Calico eBPF を使う場合に、kube-proxy replacement、DualStack、HA 構成、既存通信経路との関係を確認する記事です。 - Kubernetes Multus の導入 – Pod に複数 NIC を接続する
Pod に primary CNI とは別のネットワークを追加するために、Multus の位置づけと基本的な考え方を確認する記事です。 - Kubernetes Multus を Calico 構成の既存クラスタへ導入する – release tag 固定、delegate、疎通確認
Calico が既に動作しているクラスタへ Multus を追加し、release tag、delegate 設定、Pod 起動、追加ネットワークの疎通を確認します。 - Kubernetes Multus で Pod に追加 NIC を接続する – Calico eBPF 環境の bridge / macvlan / ipvlan L2 検証
Calico eBPF 環境で Multus の追加 NIC を使い、bridge、macvlan、ipvlan L2 の成立条件と疎通結果を確認します。 - Kubernetes Multus がうまく動かない時に考えること – CNI を複数持つ難しさ
Multus で問題が起きた場合に、primary CNI、secondary CNI、ノード側のネットワーク、Pod 内インターフェイスの責任境界を切り分けます。 - Kubernetes NetworkPolicy による egress 制御の考え方
NetworkPolicy で Pod から外部への通信を制御する場合の考え方と、CNI 実装に依存する範囲を確認する記事です。
Helm / Harbor / 内部レジストリ
Helm は単なるインストーラーではなく、Kubernetes 構成を部品化する仕組みとして見ると理解しやすくなります。Harbor は内部レジストリや Chart 管理の基盤として扱います。
- Kubernetes Helm の導入 – Chart でアプリケーション構成を管理する
Helm をアプリケーション構成管理として扱う入口の記事です。 - Kubernetes Helm Chart を自作する意味 – 借り物の Chart と運用責任を分けて考える
Chart を借りる場合と自作する場合の責任分界を確認します。 - Kubernetes 上に Harbor を構築する – Helm で内部コンテナレジストリを運用する意味
Harbor を内部コンテナレジストリや Chart 管理基盤として扱う記事です。
ストレージ / 永続化
コンテナは作り直せますが、データは永続化が必要です。アプリケーションのデータディレクトリを Kubernetes 上でどう扱うかは重要な論点です。
- Kubernetes で MariaDB の /var/lib/mysql を永続化する – PVC と権限を確認する
MariaDB のデータディレクトリを Kubernetes 上で永続化する時の考え方を確認します。
MicroK8s 関連
MicroK8s は Kubernetes そのものとは少し違う運用単位ですが、DualStack、CNI、MetalLB の検証として関連します。
- MicroK8s で IPv6 / IPv4 デュアルスタックが動かない時に見ること
MicroK8s の DualStack 検証で見るべき点を確認します。 - MicroK8s で kube-ovn を有効化する – CNI を後から切り替える難しさ
MicroK8s で CNI を後から切り替える難しさを確認します。 - MicroK8s MetalLB speaker が socket permission denied を出す原因 – L2 / 権限 / ホストネットワークを切り分ける
MicroK8s の MetalLB speaker が host network 側で何をしているのかを確認します。
運用トラブル
Kubernetes は動かすところより、動かなくなった時の切り分けが難しくなります。スケジューリング、容量、証明書、CNI、Service、外部経路を層で分けて確認します。
- Kubernetes disk-pressure で Pod が起動しない場合
Pod がスケジュールされない時に disk-pressure を確認する記事です。
このハブの位置づけ
このページは Kubernetes 関連記事の入口です。Ubuntu など OS 側の手順は OS 別ガイドを正とし、このページでは Kubernetes 自体の設計、構築、運用、ネットワーク、アプリケーション公開を主語にした記事へ誘導します。
参考書籍
書籍
Kubernetes の仕組み、リソース、ネットワーク、運用観点を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
Kubernetes Ceph CSI の使い分け – RBD と CephFS をどう見るか
Kubernetes kube-state-metrics の基本 – オブジェクト状態を監視に渡す


