Skip to content
Latchkey

Kubernetes とは?コンテナオーケストレーションを解説

Kubernetes はコンテナオーケストレータです: アプリの望ましい状態を宣言すると、現実がそれに一致するよう継続的に働きかけます。

1 つのコンテナを実行するのは簡単ですが、多数のマシンにまたがって数百を実行し、健全に保ち、スケールさせ、ダウンタイムなしで更新を展開するのは簡単ではありません。Kubernetes(しばしば「K8s」)はそれを自動化します。宣言的な manifest で望むものを記述すると、Kubernetes がそこへ到達し、それを維持する作業を行います。

宣言的な望ましい状態モデル

Kubernetes に一歩ずつどう動くかを指示するのではありません。望ましい状態(「このイメージのレプリカを 3 つ実行せよ」)を宣言すると、controller が実際の状態をそれに向けて継続的に収束させます - クラッシュしたコンテナを再起動し、故障した node を置き換え、設定どおりにスケールします。

control plane と node

control plane(API server、scheduler、controller、etcd)は状態を保存し意思決定を行う頭脳です。worker node は kubelet と実際のコンテナワークロードを実行します。両者が合わさってクラスタを形成します。

中心的なオブジェクト

  • Pod - 最小の単位、1 つ以上の co-located なコンテナ。
  • Deployment - pod のレプリカと rolling update を管理する。
  • Service - pod の集合に対する安定したネットワークエンドポイント。
  • ConfigMap と Secret - 設定と機密データ。

なぜチームは採用するのか

自己修復、水平スケーリング、rolling deploy、そしてクラウド間で統一された API。代償は運用の複雑さです - Kubernetes には実際の学習曲線があります。

Kubernetes と CI/CD

pipeline はイメージをビルドし、それから manifest を適用して(多くは kubectl や GitOps 経由で)クラスタへ deploy します。CI はまた、Kubernetes が実行するまさにそのイメージを頻繁にビルドします。マネージド runner はそうしたイメージ build を高速で信頼できるものに保ちます。

重要なポイント

  • Kubernetes は望ましい状態へ収束する宣言的なコンテナオーケストレータです。
  • クラスタには control plane(頭脳)と worker node(筋肉)があります。
  • CI はイメージをビルドし、CD は manifest を適用してそれをクラスタへ展開します。

関連ガイド