kubernetesのContorollerと呼ばれるノードにはこれらのコンポーネントが存在しています。(kubeadmでインストールした場合)
この記事ではそれらのコンポーネントがどのように起動され何を担当しているのかを簡単に紹介します。
名前 | 種類 | 役割 |
---|---|---|
kubelet | デーモン | 各ノード上で実行されkube-apiserverと連携してdockerに対して指示をおこなう |
docker | デーモン | コンテナランタイム(containerdなどもここ) |
docker | バイナリ | dockerデーモン経由で操作を行うCLI |
kubectl | バイナリ | kube-apiserver経由でkubernetesの操作を行うCLI |
kubeadm | バイナリ | kubernetesクラスタの作成、更新、管理、削除を行う CLI |
kube-proxy | デーモン(Pod) | Podへのアクセスを実現するためにiptables/IPVSなどを制御する |
kue-apiserver | デーモン(Pod) | kubernetesのAPIを受け付ける |
kube-controller-manager | デーモン(Pod) | kubernetesのコントロールを担う(命令担当) |
kube-scheduler | デーモン(Pod) | ノードに未割り当てのPodの制御を行う |
coreDNS | デーモン(Pod) | 払い出されたServiceやPodで使用されるホスト名の名前解決に使用される |
etcd | デーモン(Pod) | kubernetesの各種設定を保存するkey/valueストア |
calico(CNI) | デーモン(Pod) | 各ノード間の通信を担当する、他にもいくつかのCNIが存在している |
ちなみにkubeadm upgrade
を叩いた時の範囲はこちら。