😽
Lesson8. Kubernetes の概要
学ぶ前の知識レベル
- コンテナを便利に使うための何からしい
- AWSでコンテナをどうにかするツールとしてECSとEKSがあり、EKSのKはKubernetesの意味らしい
学んだこと
概要
- Kubernetesは、コンテナをオーケストレーションするためのツール
- Googleが開発して、2014年にオープンソース化された
- コンテナをクラスタ化し、可用性・災害復旧性[1]・スケーラビリティを高める
Kubernetes用語とアーキテクチャ
K8s
- Kubernetes のKとsの間にある8文字を略して、K8Sと表記することがある
POD
- Kubernetes を構成する最小単位
- ひとつのPODは、1つまたは複数のコンテナを持つ
- ひとつのPODがひとつのアプリケーションを構成することが多いらしい
Kubernetesの最小構成単位であるPOD
Worker node
- ひとつの worker node は、1つまたは複数のPODを持つ
- ECSにおける container instance (=EC2) に相当するコンポーネント
- 各 worker node は kubelet というアプリケーションを持っていて、そいつを使って他のworker node とやりとりをする(ECSにおけるECS Agent 的なやつか)
worker node
Master node
- Worker node を束ね、以下の機能を提供
- APIサーバー:ユーザーからのKubernetesへのエントリーポイントとなるUI、API、CLIを提供
- Controller Manager:クラスタの中で何が起きているかを監視・トラックする
- Scheduler:各 worker node の負荷に基づいて、次のPODをどの worker node に置くかを決める
- etcd:Master node のスナップショットをバックアップする
- Master node が死ぬと kubernetes 全体が使えなくなるので、基本 Master node は冗長構成をとる
master node
全体のアーキテクチャ
全体のアーキテクチャをざっくりまとめるとこんな感じ。
全体アーキテクチャ
動く仕組み
- Master node の中にある設定ファイル(JSONまたはYAML形式で記述)の中に、存在するべきPODと、各PODがどれだけのコンテナを持っているべきかが記述されている
- 各PODにIPアドレスが割り振られており、これを利用してPOD同士のやりとりが可能
- コンテナが死んだら、PODの中のコンテナを生き返らせるだけだが、PODが死ぬと、PODが生き返るのと同時に新しいIPアドレスが割り振られる
- そうなると、そこで人間の介入が必要になってとっても不便
- そこで service と呼ばれるサービス(なんだそりゃ)を使う
- service を使うと、PODが死んでも service は生きているのでIPを気にせず他のPODとのやりとりを続行できる
学ぶために使ったリソース
公式ドキュメント(英語)
Youtube(英語)
👆スーパーおすすめ
まだわかっていないこと
まだ完全に理解しただけの状態なので、何がわかっていないのかもわかっていない。
ひとまず概要のお勉強はここまで!
-
DR(Disaster Recovery)の日本語ってこれでいいのだろうか ↩︎
Discussion