K8s 5分講座#05 Kubernetesのメリット
今日は「Kubernetesのメリット」についての講義だ。
コンテナオーケストレーション、すなわちコンテナを自動的にデプロイして管理することで、何が得られるか?というお話ですね。
可用性のメリット
まずひとつが、高い可用性を実現できるという点だ。
システムが利用したい時に正常に動作できる、ということですね。
異なるノード上で複数のインスタンスが動作しているため、ハードウェアの故障によってアプリケーションがダウンすることは無い。
ノードってなんですか?
コンテナが実行される物理的なサーバのことだ。詳しくは次回、K8sアーキテクチャの講義で説明する。
了解です!複数の物理サーバに、それぞれコンテナが実行されているから、HWが壊れても他のHW上で稼働しているコンテナで処理できるということですね。
負荷分散と拡張性(スケーリング)
ユーザのトラフィックは複数のコンテナで負荷分散される。
複数のサーバーにトラフィック(処理)を均等に分けることで、各サーバーに負担がかかりすぎないようにするんですね。
更に、需要が増加した場合、アプリケーションのインスタンスをシームレス(ユーザ影響なし)に、しかも数秒の内に追加展開することができる。
HWのリソースが足りなくなったときに、ノードの追加や、リソースの割り当て変更を行うことができるんですか?
できるぞ。基本的にはアプリケーションを停止することなく、基盤となるノードの数を増減でき、宣言型オブジェクト設定ファイル(マニフェスト)で実現する。
ファイルに構成やリソース情報を書いておくんですね。構成管理もラクそうです。
- Kubernetesを用いることで、高可用性を実現できる
- さらに需要の増減に応じて負荷分散やスケーリングすることもできる
- これらはマニフェストと呼ばれる宣言型オブジェクト設定ファイルで実現する
マニフェストってだいぶ前に政治の世界で出てきませんでしたっけ?
もんたから政治の話題が出るなんて驚きだな。横文字が印象に残りやすいことを生かして、「政権公約」の意味で使われていた時もあったな。
コンテナオーケストレーションの世界では、設定情報を記述したファイルのことを指して、これに従ってK8sのようなツールがリソースを準備してくれるんですね。
そう、宣言型と言った通りで、作成者が望む最終的な状態を宣言する形で書き、オーケストレーションツールがその状態を実現するために必要な手順を自動で管理するんだ。
便利ですね~!