このブログは、コンテナのオーケストレーターであるkubernetesについて
自分の知識をまとめることを目的として記事を書いています。
もともとなが~くvSphereのあれやこれやに携わってきたのでvSphereとの類似点や相違点についても
ちょっと混ぜていけたりしたらいいかなぁとかも思っています。
今回は、前回構築したkubernetesクラスターはどのような状態になっていて、何ができるのかについて
解説していこうと思います。
まず、前回マスターノードとワーカーノードを作成しました。
マスターノードとワーカーノードには、kubernetesクラスターを構成するためのコンポーネントが配置
されています。
どのようなものが配置されているかというと以下となります。
[マスターノード側]
・kube-apiserver
・etcd
・kube-Controller-manager
・kube-scheduler
・kube-proxy
[ワーカーノード側]
・kubelet
・kube-proxy
kube-apiserver
kubernetesクラスターには当然ユーザーからの処理(API)を受け付けて指示を出してくれる存在です。
すべてのコンポーネントの中心となっていて、その他のコンポーネントへ指示を出したりします。
vSphereでいうとvCenterのvpxdみたいなやつですね。
etcd
kubernetesクラスターのデータベース担当です
kube-scheduler
Podをどこのワーカーノードで起動するか割り当ててくれます
kube-Controller-manager
レプリケーションコントローラー等、kubernetesクラスターに存在する複数のコントローラーの
プロセスを実行します。
kube-proxy
各ノード上で動作するネットワークプロキシ
kubelet
kube-apiserverから指示を受けてワーカーノード上で処理を実施するエージェント。
vSphereでいうところのhostdみたいなやつですねこれも
上記のコンポーネント達がやり取りをしてkubernetesクラスターを成り立たせているわけですが、
これは基本中の基本操作ができるための機能しかありません。
Pod(コンテナ)やService(ネットワーク)等を作成することはできますが、Pod用のストレージとなる
PersistentVolumeを要求に従って自動で割り当てたり、外部と通信する際にロードバランサータイプの
Serviceが利用できなかったりします。
有料のサービスとして利用可能なマネージドkubernetesであれば上記の内容も利用できますが、
できれば、無料で使ってどんなものか自分で確認してみたいですよね・・・
それぞれ以下を導入すれば利用が可能となります。
・MetalLB
・Kubernetes NFS-Client Provisioner
なお、kubernetesにPodやServiceを作る際GUI操作という物はなく、基本コマンドになります。
実際にコマンドラインだけで作成することも可能ですが、ymalファイルというテキストベースの
設計書を事前に作成して、そのファイルを指定してコマンドを実行するという感じですね。
というわけで、次回はyamlの書き方や実際にPodやServiceを作成してそれをどう確認するのか
について解説したいと思います。