K8s(ケーエイツ)は「Kubernetes」の略称で、現代のアプリケーション開発・運用に欠かせないオープンソースのプラットフォームです。元々はGoogleが社内で利用していたBorg(ボーグ)というシステムを基に開発され、2014年に公開されました。今では世界中の多くの企業で、アプリケーションを安定的かつ効率的に動かすための基盤技術として利用されています。
K8sを一言でいうと?
K8sを一言で表すなら、「たくさんのコンテナを自動で管理してくれる優秀な船長(またはオーケストラの指揮者)」です。
ここでいう「コンテナ」とは、アプリケーション本体と、その実行に必要な設定やライブラリなどをひとまとめにした「軽量な仮想環境」のことです。コンテナを使うと、どんな環境でも同じようにアプリケーションを動かせるため、開発から本番環境への移行などがスムーズになります。
しかし、実際のサービスでは、何十、何百というコンテナが同時に動きます。アクセスが増えればコンテナの数を増やし、サーバーに障害が起きれば別のサーバーでコンテナを動かし直すなど、手動での管理は非常に大変です。
K8sは、こうしたコンテナの管理(コンテナオーケストレーション)を自動化してくれます。
K8sの主な役割
- 自動配置(スケジューリング): どのサーバーにコンテナを配置すれば効率的かを判断し、自動で配置します。
- 自己修復(セルフヒーリング): コンテナやサーバーが停止してしまった場合、自動で検知して新しいコンテナを起動し、サービスが止まらないようにします。
- 自動スケール: アクセスの増減に応じて、コンテナの数を自動で増やしたり減らしたりして、コストを最適化しつつ安定したサービスを提供します。
- 簡単なアップデート: アプリケーションをアップデートする際に、サービスを停止することなく、古いバージョンのコンテナを新しいものに少しずつ入れ替えることができます(ローリングアップデート)。
Google Cloud との関係
Google Cloudでは、このK8sを簡単に利用できるようにしたマネージドサービス「Google Kubernetes Engine (GKE)」を提供しています。GKEを利用することで、K8s自体の難しいインストールや設定、バージョン管理などをGoogleに任せることができます。利用者は、本来の目的であるアプリケーションの開発と運用に集中できるため、Google Cloud上でアプリケーションを構築する際の強力な選択肢となります。