「Kubernetes」は、さまざまなインフラでコンテナを実行・管理するための、オープンソースのコンテナオーケストレーションツールだ。KubernetesおよびKubernetes管理下のコンテナは、ほとんどのクラウドインフラで実行できる。(続きはページの末尾にあります)
状態管理はアプリケーション開発において重要かつ面倒な機能だ。バグやセキュリティホールの温床であり、トラックは難しい。この部分が簡便化される意義は極めて大きい。
Kubernetesの自動スケーリング機能(オートスケーラー)を利用することで、クラスタのサイズを自動的に調整できる。だが、ここに落とし穴がある。
「Docker」と「Kubernetes」の導入が進むにつれて、企業ではコンテナのスキル需要が高まっている。本稿で紹介するトレーニングと認定資格を利用して、クラウドに関する履歴書項目を増やしてほしい。
Kubernetesの用途は広がりつつある。幾つかの具体例を紹介する。
ユーザー企業はKubernetesを利用することで、アプリケーションを稼働させるインフラの選択肢を広げやすくなる。オンプレミスインフラで稼働させているアプリケーションをクラウドサービスに移行させたり、複数のクラウドインフラを組み合わせたりすることにも役立つ。複数のインフラにKubernetesの「ノード」(コンテナを実行するための物理サーバまたはVM)を設置することで、耐障害性が向上する。
Kubernetesは、クラウドベンダーが提供するイベント駆動型サービスと組み合わせることで、必要なタイミングにのみコンテナを立ち上げるサーバレスアプリケーションを構築可能だ。これによってアプリケーションのインフラのスケーラビリティや信頼性の向上、コスト削減が見込める。
既にオンプレミスインフラやクラウドサービスでKubernetesを実行しているユーザー企業は、Kubernetesを使用して、それらの機能を「エッジコンピュータ」に拡張できる。エッジコンピュータは、データの発生源の近く(エッジ)で稼働するコンピュータを指し、自社の各拠点やクラウドサービスに存在する小規模なサーバ群、産業用IoT(モノのインターネット)端末などが含まれる。エッジコンピュータ用のアプリケーションは、データセンターで稼働するアプリケーションと相互に通信する場合がある。