コンテナオーケストレーションツール「Kubernetes」
コンテナオーケストレーション
- コンテナオーケストレションはコンテナの管理・運用を自動化すること
- コンテナの管理・運用には負荷分散や死活監視、スケーリングなどの作業が必要である
- コンテナを活用したアプリケーションの普及や規模拡大とともにコンテナオーケストレーションの重要性はますます高まる
Kubernetesとは
- Kubernetesはオーケストレーションを行うツール
- KubernetesクラスタはKubernetesによって管理されるマシンの集合
- ノードには実際にポッドを起動するワーカーとワーカーを指揮するマスターの2種類がある
ポッド
- ポッドはKubernetesがコンテナを管理するための最小単位
- 同じポッド内で起動する必要がないコンテナ同士はなるべく別々のポッドに含めると良い
- ポッドによってコンテナの管理をKubernetesへ任せることができる
- よく使用されるデザインパターンの一つにサイドカーコンテナがある
デプロイメントコントローラ
- レプリカセットは同じ種類のポッドのみを含むグループ
- デプロイメントは同じレプリカセットで異なるバージョンのものを含むグループ
- デプロイメントコントローラはデプロイメントをあるべき状態に保つための仕組み
サービス
- サービスはコンテナへアクセスするためのエンドポイントを提供する
- サービスによってコンテナが起動と停止が繰り返される状況でもコンテナへのアクセスが可能
flannel
- 同じポッドに含まれるコンテナ同士はlocalhostへアクセスすると通信できる
- ポッドにはユニークなIPアドレスが割り当てられている
- flannelはマシン間のポッド同士が通信する仕組み