このブログを検索

この記事の内容は、個人の見解、検証の範囲のものであり、誤りがある可能性があります。
個人の責任において情報活用をお願いします。


2021年6月25日金曜日

俺とkubernetesと時々vSphere ー構築完了時点でのkubernetesクラスターの状態についてー

このブログは、コンテナのオーケストレーターである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を作成してそれをどう確認するのか

について解説したいと思います。