kubernetesってすごいの?
Kubernetesはクラウド界のLinuxになる!!
増え続けるコンテナをどのように管理するかが課題に
↓
複数のDockerホストの管理やコンテナの死活監視、スケジューリングやスケーリングなど、コンテナ管理に関する様々なタスクをこなす役割を持つコンテナオーケストレーションエンジンが必要
↓
その代表格がKubernetes
Kubernetesの導入により実現できること
・Infrastructure as Code
・Self-Healing
・Immutable Infrastructure
Infrastructure as Code
手順書ではなくコードでインフラの構成管理を行うことでインフラ構築を自動化し、人為的ミス削減や作業の効率化、再構築の容易化を実現する手法
・Kubernetesの定義は基本的にYAML形式のテキストファイルとなるため、宣言的に記述することが可能
・コンテナのレプリカ数や転送先のポート番号と対応するコンテナの指定など、そのいずれもがYAMLでの定義となるため、他環境への可搬性が保たれる
Self-Healing
定義ファイルに指定したコンテナのレプリカ数は起動時のみへの指定ではなく、その数を維持し続けようとする
・ノードの障害によりコンテナ数が減少した場合、別のノード上で起動するなど、障害時の影響を最小限にとどめるよう自動復旧を行う
Immutable Infrastructure
インフラを不変(Immutable)とし、一度構築した環境に対しバージョンアップやパッチの適用などの変更作業を行わないという考え方
・コンテナイメージのアップデートをする際、その前後にロードバランサからの除外及び再追加を行う必要があるが、VMと異なりこれらの流れはKubernetesが自動で実施