オーケストレーターとは
マイクロサービスの分離設計とコンテナーの原子性とを組み合わせることで、アプリをスケールアウトしてより多くのコンテナー インスタンスをデプロイすることで、増加する需要に対応したり、需要が減少している場合は元のスケールに戻したりすることができます。 複雑なソリューション内では、コンテナーのデプロイ、更新、監視、および削除のプロセスで課題が生じます。
コンテナー管理
コンテナー管理とは、多数のコンテナーを整理、追加、削除、または更新するプロセスです。
Contoso アウトドア用品会社の Web サイトは、キャッシュ、データ処理、ショッピング カートなどのタスクを担当する複数のマイクロサービスで構成されています。 これらの各サービスはコンテナー内でホストされ、相互に独立してデプロイ、更新、スケーリングできます。
ショッピング カートのコンテナー インスタンス数を増やし、新しいバージョンをデプロイする必要がある場合、そのコンテナーのすべてのインスタンスを更新する必要があります。
コンテナー管理は、このようなタスクに役立ちます。
コンテナーのオーケストレーション
コンテナー オーケストレーターは、コンテナー化されたアプリを自動的にデプロイおよび管理するシステムです。 たとえば、オーケストレーターによって、環境内の変更に動的に応答して、マネージド アプリのデプロイ済みインスタンスを増減させることができます。 また、新しいバージョンのサービスがリリースされた場合に、デプロイされたすべてのコンテナー インスタンスが確実に更新されるようにできます。
Kubernetes
Kubernetes は、コンテナー化されたワークロードを管理および調整するための、移植可能で拡張可能なオープンソース プラットフォームです。 Kubernetes によって複雑なコンテナー管理タスクが抽象化され、さまざまなコンピューティング環境でコンテナーを調整するための宣言型の構成が提供されます。 このオーケストレーション プラットフォームは、あなたがサービスとしてのプラットフォーム (PaaS) やサービスとしてのインフラストラクチャ (IaaS) オファリングで既に知っているのと同じ使いやすさと柔軟性をもたらします。
メリット
Kubernetes を使用する利点は、タスクの抽象化に基づいています。
次のようなタスクがあります。
- コンテナーの自己修復。たとえば、障害が発生したコンテナーの再起動や、コンテナーの置き換えなどです。
- デプロイされたコンテナーの数の需要に基づいた動的なスケールアップまたはスケールダウン。
- コンテナーの自動的なローリング アップデートとロールバック。
- ストレージの管理。
- ネットワーク トラフィックの管理。
- ユーザー名やパスワードなどの機密情報の保管と管理。
Kubernetes はコンテナー化されたワークロードを調整するためのツールであり、.NET マイクロサービスをコンテナーにデプロイすることができるので、Kubernetes を使用して .NET マイクロサービスを調整することができます。 これがこのモジュールの残りの部分で説明することです。