ゴイサギ日記

東京でエンジニアとして頑張って何とか生きてます。。ゆる~く更新していきます

【Kubernetes】全体像を知る

前回に引き続き、Kubernetesです。

Kubernetesの登場人物

こちらの動画がとても分かりやすかったのでこちらを元に登場人物をまとめました。高良さん、本当にありがとうございます・・(TAT)
www.youtube.com

コンテナ

アプリケーションと実行環境がセットになったもの、まとまっているので環境ごとの展開が容易になる
f:id:aki517:20200617121300p:plain

ポッド

1つ以上のコンテナとそれらの共有リソースを指す、固有のIPアドレスを持ち、ワーカーノード上で動作する
f:id:aki517:20200617121320p:plain

ワーカーノード

VMまたは物理マシン、マスターノードの指示を受けて複数のポッドを管理する
f:id:aki517:20200617121337p:plain

マスターノード

ワーカーノードに不具合があった際に、他のワーカーノードへ処理の振り分けを行う等して複数のワーカーノードを管理する
f:id:aki517:20200617121357p:plain

クラスタ

ノードのグループを指す、マスターノード + 1つ以上のワーカーノードで構成される
f:id:aki517:20200617121731p:plain

指示書(Manifest)

ノードやポッドの増減、振り分けによる負荷分散などの設定が書かれたもの、YAMLJSONで書く
f:id:aki517:20200617121428p:plain

司令官

指示書を書いて、それをコマンドとして実行する人、つまり開発者
f:id:aki517:20200617122003p:plain

全体構成

ここまでの全体構成はこんな感じです。
f:id:aki517:20200617122043p:plain

コントローラ

マスターノード内にあり、ポッドのスケール(増減)、サービス停止なしのポッド交換などを自動実行する機能たち
f:id:aki517:20200617204102p:plain

Service

ユーザ(インターネット)からの要求に対して適切なノード・ポッドへ処理を振り分ける役割を担う
f:id:aki517:20200617204115p:plain

Ingress

ユーザとServiceの間に立って適切なServiceへの振り分けを担う、パスベースロードバランス等
f:id:aki517:20200618220054p:plain

ReplicaSet

設定したポッド数を作成する、ポッドに不具合を検知して速やかに新しいポッドを作成して、常に設定したポッド数を維持しようとする
f:id:aki517:20200617204111p:plain

Deployment

ReplicaSetの管理を行う、ローリングアップデートと呼ばれる方法でポッドのスケールアップ/ダウンをほぼサービス停止なしで行う
f:id:aki517:20200617204105p:plain

まとめ

今回はKubernetesの登場人物とコントローラについて書きました。この他にも素晴らしい機能が沢山あるのですが書き出したら切りが無い・・

概念だけではなく実際に操作してみたいという方はこちらの「Katacoda」というサイトではハンズオンでKubernetesを学習することが出来ます。アカウント登録が必要ですが、Dockerの学習もできるので登録しておいて損はないです。(2020/6/20時点)
www.katacoda.com

ちなみにマネージド版Kubernetesはこちらのサイトでパブリッククラウド御三家の比較について説明がしてあって面白い
g3-enterprise.com

参考

Podとノードについて | Kubernetes
コントローラー | Kubernetes