kubernetesの静的Pod


詳細については、ブログの原文:kubernetesの静的Podを参照してください.https://finolo.gy/2020/01/kubernetesの静的Pod/
普段私たちが多く提案しているPodは、Deployment、DaemonSet、StatefulSetなどの方法で管理されています.今日は静的(Static)Podという特殊なPodを紹介します.

静的Podとは


静的Podはkubeletによって管理され、特定のノード上にのみ存在するPodであり、これらのPodはAPIサーバによって管理されず、ReplicationController、Deployment、またはDaemonSetに関連付けられない.

静的Podの作成


yamlファイルを構成することで、静的Podを作成できます.クbeletプロセスがあれば、そのノードで静的Podを実行できます.
バイナリで起動したクbeletの場合、クbelet実行時に構成パラメータ--pod-manifest-path=を追加できます.クbeletは定期的にディレクトリをスキャンし、ディレクトリの下のyamlファイルを適用して静的Podを作成します.
kubeadmでインストールしたクラスタですが、kube-schedulerという静的Podを例に、どのように動作しているかを見てみましょう.
ps -ef | grep kubelet
root       6088      1  3 Dec23 ?        01:45:47 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --cgroup-driver=systemd --network-plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.1
--configのディレクトリが/var/lib/kubelet/config.yamlであることがわかります.このファイルの内容を確認すると、パラメータstaticPodPathの値が表示されます.
cat /var/lib/kubelet/config.yaml | grep staticPodPath
staticPodPath: /etc/kubernetes/manifests

ディレクトリの内容の表示
ll /etc/kubernetes/manifests
total 16
-rw------- 1 root root 1928 Dec 12 10:38 etcd.yaml
-rw------- 1 root root 2610 Dec 12 10:38 kube-apiserver.yaml
-rw------- 1 root root 2486 Dec 12 10:38 kube-controller-manager.yaml
-rw------- 1 root root  990 Dec 12 10:38 kube-scheduler.yaml

これにより,kubeletはstaticPodPathをスキャンし,このディレクトリの下にyamlファイルがあることを検出してPodを作成することが分かった.Podを削除する場合は、これらのプロファイルを削除すればいいです.
詳細については、ブログの原文:kubernetesの静的Podを参照してください.https://finolo.gy/2020/01/kubernetesの静的Pod/