Skip to content
Latchkey

コンテナオーケストレーターとは?大規模なコンテナ管理

コンテナオーケストレーターとは、マシンのフリート全体にわたってコンテナをスケジューリング、スケーリング、ネットワーキング、自己修復するシステムであり、それらを手作業で行う必要をなくします。

1台のホスト上の1つのコンテナはシンプルです。多数のホスト上で多数のコンテナを動かすこと - 配置し、障害を再起動し、トラフィックを分散し、アップデートをロールアウトすること - は、困難で反復的な作業です。オーケストレーターはそのすべてを自動化し、マシンの山を、宣言的にデプロイする単一のキャパシティプールへと変えます。

オーケストレーターが担うこと

  • スケジューリング - どのホストが各コンテナを実行するかを決定する。
  • スケーリング - 需要に合わせて replica を追加または削除する。
  • 自己修復 - 障害の起きたコンテナを再起動または再スケジュールする。
  • コンテナ間のネットワーキングとサービスディスカバリ。
  • ダウンタイムなしの rolling update と rollback。

宣言的な制御

あなたは望ましい状態を宣言し、オーケストレーターはそれに向かって継続的にリコンサイルします。これは script を実行するのとは根本的に異なります - マシンが故障したり負荷が移動しても、システムは収束し続けます。

一般的な選択肢

Kubernetes は事実上の標準です。他には Docker Swarm(よりシンプルで、今では利用は少なめ)、HashiCorp Nomad、そして完全な Kubernetes API なしにオーケストレーションを行う ECS のようなマネージドクラウドサービスがあります。

オーケストレーターが必要になるとき

単一の小さなサービスにはオーケストレーターは過剰です - マネージドプラットフォームか数個のコンテナで十分です。オーケストレーターは、多数のサービス、スケールの必要性、または厳格な uptime 要件が生じて初めて、その複雑さに見合う価値を発揮します。

オーケストレーターと CI/CD

CI はイメージを build し、オーケストレーターはそれらを実行します。CD の pipeline は、オーケストレーターがリコンサイルする宣言的な変更(manifest や chart)を push します。高速で信頼性の高いイメージ build - CI が担う部分 - が、そのループを引き締めます。

重要なポイント

  • オーケストレーターは、コンテナのスケジューリング、スケーリング、自己修復、ネットワーキングを自動化します。
  • 宣言的に動作し、望ましい状態へ継続的にリコンサイルします。
  • Kubernetes が最も一般的ですが、小規模な用途にはよりシンプルな選択肢もあります。

関連ガイド