Kubernetes Components
概要
Kubernetes におけるコンポーネントとは、Kubernetes Cluster の機能を提供するためのバイナリコンポーネントのことを指し、各々プロセスとして実行される。
Kubernetes の特徴の1つとして、Kubernetes クラスタを構成する多くのコンポーネントが、Kubernetes 自体を使ってデプロイされている という点がある。
Master Components
クラスターの制御を行うコンポーネント群
クラスター全体に対する設定 (スケジューリング等)、クラスター内のイベント (設定を満たしていない場合に新たに Pod を立ち上げる) の検知を担う
動作場所
master node として存在する Node 上で動作させる
クラスタ内のどのマシンで動作させても良い
が、シンプルにするために全て同一マシンで動作させるのが良い
ユーザのコンテナーは、同一マシン上で動作させない
複数マシンで動作させることも可能
Node Components
動作場所
worker node として存在する Node 上で動作させる
Master Components
table:Master Components
Master Component 概要
kube-scheduler 各 Pod をクラスタ内の各 Node に配置する
kube-controller-manager クラスタ上での振る舞いを制御する様々なコントローラを動かす
etcd クラスタの API オブジェクトが格納されるストレージ
kube-apiserver
cloud-controller-manager
https://kubernetes.io/docs/concepts/overview/components/
Node Components
table:Node Components
Node Compoents 概要
kubelet
kube-proxy クラスタ内のロードバランスされた Service に、ネットワークトラフィックをルーティングする
Addons
table:addons
Addons 概要
DNS
Dashboard
kubectl で見る Components
kubectl を利用して、各種コンポーネントの様子を観測できる。
code:bash
# 一部の Master Components のステータスを確認できる
$ kubectl get componentstatuses
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-0 Healthy {"health": "true"}
# Master ノード、ワーカーノード一覧を確認できる
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready master 2m v1.13.4
node-1 Ready 2m