Kubernetes
コンテナオーケストレーター。Googleが社内クラスタ管理システムBorgの知見をもとに2014年に公開し、CNCF設立時の最初のホストプロジェクトとなった。2010年代後半のオーケストレーション競争(vs Docker Swarm, Apache Mesos)を制し、コンテナ基盤の事実上の標準になっている。
このノートはKubernetes関連ノートを束ねるハブノート。 #kubernetes #infrastructure #moc
ローカル・軽量環境
- minikube — upstreamのKubernetesをローカルに立てる公式ツール。多様なドライバー(VM/コンテナ/ベアメタル)を選べる
- k3s — 単一バイナリの軽量ディストリビューション。エッジ・IoT・ホームラボ向けで、本番でも使われる
- kind — Kubernetes本体のテスト用に生まれた、Dockerコンテナをノードとするクラスタツール。CI・使い捨てクラスタ向き
- k0s — Mirantis製の単一バイナリ・依存関係ゼロを掲げるディストリビューション。upstreamへの忠実さを重視
- MicroK8s — Canonical製のsnap配布ディストリビューション。アドオン機構を持ち、Ubuntu上での運用に強い
アーキテクチャ・拡張機構
- Kubernetes拡張まわりの用語整理 — CRD・CR・コントローラ・Operator・reconcileの関係を整理したハブ
- コントローラ — 望ましい状態に実際の状態を近づけ続ける制御ループ(reconcile)
- Operator — CRD+専用コントローラで特定アプリの運用を自動化するパターン
- カスタムリソース(CRD) — 独自のKindをAPIに追加する拡張機構。コントローラ(Operator)と組み合わせてreconcileさせる
- Cluster API (CAPI) — Kubernetesクラスタ自体をKubernetesのリソースとして宣言的に管理する仕組み
- Cloud Controller Manager (CCM) — クラウドプロバイダー固有の制御ループを本体から分離したコンポーネント
- Container Storage Interface (CSI) — ストレージベンダーがプラグインを書くための標準インターフェース
- CNI — Podネットワークを実装するプラグインの標準インターフェース。ストレージにおけるCSIのネットワーク版にあたる
- etcd — クラスタの全状態を保存するプライマリデータストア
- kubeadm — クラスタを手作業で組む際の公式ブートストラップツール。kind・Cluster APIなど上位ツールの土台でもある
- rootless mode (KubeletInUserNamespace) — kubelet以下のノードスタック全体をuser namespace内の非rootユーザーで動かす仕組み。v1.37でベータ昇格
事例
- Kubernetes on Oxide — Oxide Computerのオンプレクラウド基盤へのKubernetes統合の取り組み
前史・周辺
- Apache Mesos — two-level schedulingを特徴とするクラスタマネージャ。オーケストレーション競争でKubernetesと争い、2025年にApache Attic入りした
- Borg — Kubernetesの源流となったGoogle社内のクラスタ管理システム
🔗 リンクされているノート
- Apache Mesos
- Aspire
- Backstage
- Borg (Googleのクラスタ管理システム)
- CEL (Common Expression Language)
- CNCF
- CNI (Container Network Interface)
- Cilium
- Cloud Controller Manager (CCM)
- Cluster API (CAPI)
- Container Storage Interface (CSI)
- CoreOS
- Fluent Bit
- HolmesGPT
- Kata Containers
- Kubernetes on Oxide
- Kubernetesのrootless mode (KubeletInUserNamespace)
- Kubernetesのカスタムリソース(CRD)
- Kubernetesのコントローラ(制御ループ・reconcile)
- Kubernetes拡張まわりの用語整理
- MicroK8s
- Nomad
- Open vSwitch (OVS)
- OpenTelemetry Collector
- PlaTT
- Podman
- Prometheus
- RBAC (Role-Based Access Control)
- Raft (合意アルゴリズム)
- Service Mesh
- Slurm
- Traefik
- cgroups(control groups)
- etcd
- firecracker-containerd
- k0s
- k3s
- kind (Kubernetes in Docker)
- kubeadm
- minikube
- コンテナ向け軽量VM技術