マイクロサービスやDockerの話になるといつも出てくるのが、Kubernetes(クーバネティス)。
奥深そうな技術ではあるが、Kubernetesとは?をあさーく簡単にまとめてみた
概要
- Dockerコンテナをクラスタ化した際の運用ツールの1つ
- Googleが中心になって開発してる(Go + シェルスクリプト)
- 自動デプロイ、スケーリング、アプリ・コンテナの運用自動化ができる
- マイクロサービスと相性が良い
- 管理上の基本単位はPodという
- Volume:記憶領域を共有するコンテナの集まり
- Container
- IP ADress
- 試すなら、GKE(Google Kubernetes Engine)を使うのが良さそう
↓8分くらいの動画。わかりやすいらしい(見てない)
なぜ必要とされたのか?
- Dockerは、ホスト内のコンテナ同士はやりとりできるが、外側とのやりとりにNATが必要
- したがって、ホスト間の連携が煩雑になるため、容易にスケールアウトできない
- そこで出てきたのがKubernetes
Kubernetesでできること
- 複数台のホストから構成される実行環境を、1台の実行環境のように扱うことができる
- 運用中のコンテナに不具合があってサービスがダウンした時に、状態変化を察知し、いい感じにしてくれる
- 問題の発見に遅れる可能性があるかも
- Docker/Kubernetes環境でマイクロサービス化を推進すると、様々な部品を独立してデプロイ出来るようになる
つまり
- アプリを迅速に予定通りにデプロイする
- 稼働中にアプリをスケールする(規模を大きくする)
構成要素
- マスター・コンポーネント
- クラスタの制御を待ち受けるもの
- クラスタ全体に関わる決定を行う
- ノード・コンポーネント
- 全てのノードで実行される
次はハンズオンをやりながら理解を深める予定