コンテナ化されたアプリケーションの設定や管理を自動で行うOSS、Kubernetesの概要をおよそ5分でざっくり解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
「Kubernetes」は、コンテナ化されたサービスの設定や管理を自動で行うOSS(オープンソースソフトウェア)です。あるコンテナが動作を停止したときに別のコンテナを起動したり、サービスへの負荷の状況によってサーバのリソースを増減させたりと、多数のコンテナを運用管理する際に必要な機能を備えています。このようなソフトウェアを「コンテナオーケストレーションプラットフォーム」と呼びます。
Kubernetes以外にも同様の機能を持つソフトウェアは存在しますが、2021年現在、Kubernetesが最もよく使われているといえるでしょう。
Kubernetesは、当初はGoogleが開発していましたが、2015年にLinux Foundation傘下の組織Cloud Native Computing Foundation(CMCF)に寄贈されました。Amazon Web ServicesやMicrosoftなどの企業が参加するコミュニティーを中心として開発、アップデートが行われています。
Kubernetesは、サービスに接続するためのIPアドレスやポート番号などの情報を発見する「サービスディスカバリ」機能を提供します。Kubernetesのデプロイにおける最小単位「Pod」(後述)に独自のIPアドレスを割り振ったり、同じ設定で複製したオブジェクトに対して固有のDNS名を付与したり、複製したオブジェクトの負荷を分散させたりすることができます。
Kubernetesには、クラウドサービスが提供するITインフラを抽象化するAPIが備わっています。パブリッククラウドプロバイダー、ローカルストレージ、両方のハイブリッド環境など、採用したいストレージシステムを自由に選択してサービスを構築できます。
Kubernetesではサービスの構成管理に、デプロイした結果の状態を記述した設定ファイルを利用します。開発者は、デプロイした結果の状態を記述したファイルを作成し、Kubernetesに反映します。そうすることで、Kubernetesは現在のサービスの状態を設定ファイルと同じ状態になるように、段階的にサービスの状態を監視しながら変更を加えます。更新に問題が生じたとき、Kubernetesは変更をロールバックします。結果の設定ファイルを反映する前の状態を記述した、設定ファイルを反映するだけでロールバックができます。そのため、確実で頻繁なデプロイが容易になります。
Kubernetesにはコンテナのリソース情報を設定した際、必要なオブジェクトをどのように配置するかを決定する機能があります。この機能により、コンテナに設定されるリソースの合計を調整し、用意したリソースの中でパフォーマンスを最大限に活用することができます。
Kubernetesは、障害によってサービスの状態に変化が生じた場合でも、障害が起こる前の状態を維持するよう動作します。デプロイの際に、Kubernetesはサービスの現在の状態を設定ファイルの記述通りに維持しますが、設定ファイルの参照は設定を変更するときだけではありません。処理に失敗したコンテナを検知し、設定に該当しないコンテナを強制終了する際にも設定ファイルを参照します。
Kubernetesには、パスワードやSSHキーといった機密情報を保持、管理する機能があります。コンテナイメージから分離したオブジェクトで機密情報を管理し、アプリケーションの構成情報を更新します。
Copyright © ITmedia, Inc. All Rights Reserved.