コンテナはアプリケーションのポータビリティを飛躍的に高め、柔軟なデプロイ、スケール、ロールバックを実現します。しかし本番環境でコンテナを正しく運用しようとすると、様々な困難に直面します。
例えばアプリケーションの可用性を確保するには、コンテナが動作するノードを冗長化する必要があります。しかし複数のノード上に展開されたコンテナ間の通信は、どうやって実現したらよいのでしょう? 複数のコンテナが吐き出すログを一箇所に集約するには? コンテナの死活監視やオートスケールはどうでしょうか?
そこで運用者がこうした問題を意識せず、複数のコンテナを簡単に運用できるようにするコンテナ管理支援ツールが登場しました。それが「コンテナオーケストレーションツール」です。コンテナ運用にまつわる面倒な作業は、コンテナオーケストレーションツールに任せるのが現在では一般的となっています。
コンテナオーケストレーションツールには複数の実装が存在しますが、2022年現在、デファクトスタンダードとなっているのが、「Kubernetes(クーバネティス)」です。「k」と「s」の間に8文字のアルファベットがあることから、略して「k8s」とも呼ばれます。
とはいえ、k8s自体の導入運用は、それほど簡単ではありません。分散システム特有の複雑さといった問題もあり、システムの規模によっては運用コストが見合わないケースも珍しくないでしょう。しかし現在では、AWSのEKSやGCPのGKEをはじめとする、クラウドベンダーが面倒を見てくれるマネージドk8sサービスも増えてきています。そのため従来と比較いて、k8sを導入しやすい土台が整備されつつあるのは間違いありません。