クーバネティス
クーバネティス(Kubernetes)は、コンテナ化されたアプリケーションを管理し、デプロイやスケーリングを自動化できるシステム。「K8s」と略して呼ばれることもある。Googleが設計したシステムツールだが、現在はオープンソースソフトウェアになっている。
コンテナはアプリケーションの実行環境を仮想化する技術。1つのハードウェアで複数の環境を動作させるため、リソースを有効活用できる。物理サーバーのホストOSを共有しているため、素早く起動でき、保存するデータ容量もコンパクトになる。コンテナのデファクトスタンダード「Docker」を管理・運用するコンテナオーケストレーションがKubernetesだ。Dockerとクーバネティスを組み合わせることで、アプリケーションやサービスの可搬性を高めることができる。
【クーバネティスの主な機能】
- 複数台のプラットフォームで構成される実行環境を、1台の実行環境のように扱える。
- データ量が大きいときはコンテナを増やし、小さくなったらコンテナを減らす。自動スケーリングで負荷に応じてコンテナを増減する。
- コンテナの特性に合わせてリソースを割り当てる。
- コンテナに問題が発生した場合、そのコンテナを破棄して、新しいコンテナで処理を継続する。
- 利用可能なコンテナと特定のリソースを紐付ける。
- 自動でロールアウトして、システム全体を停止することなく、バージョンアップできる。
クーバネティスにはメリットも多いが、物理サーバーの数が増えやすいというデメリットもある。障害のリスクを低減するため、複数台の物理サーバーを必要とするからだ。また、機能が多く、細かい更新が頻繁に発生するため、運用上の負担となる。定期的な知識・スキルのアップデートが必要で、学習コストが高いことも課題である。
企業の情報システムがオンプレミス型からクラウドへと進み、コンテナを活用したものへと変化している。今後、多くの企業でDockerとクーバネティスを活用したクラウドネイティブな開発が加速すると考えられる。
(青木逸美)