Static Pod란 ?
Static Pods are managed directly by the kubelet daemon on a specific node, without the API server observing them.
스태틱 파드는 kubelet이 다이랙트로 controlplane 노드에서 관리되어지는 pod로써
kubelet은 /etc/kubernetes/manifests에 해당 pod의 구성파일(definition files )을 관리하며 kubelet 이 각각의 스태틱 파드를 감시한다. (만약 실패할 경우 다시 구동한다.)
etcd,
kube-apiserver,
kube-controller-manager,
kube-scheduler
4개의 pods를 말합니다.
# 만약 클러스터로 구성된 쿠버네티스를 구동하고 있고, 스태틱 파드를 사용하여 모든 노드에서 파드를 구동하고 있다면, 스태틱 파드를 사용하는 대신 데몬셋을 사용하는 것이 바람직하다
Static pod를 확인하는 방법
# Static pod는 controlplane 노드에 생성되기 때문에
# grep 을 통해 controlplane을 조회하면 된다.
### kubectl get pods --all-namespaces | grep "\-controlplane"
# static pods는 controlplane 노드에 생성됩니다.
### kubectl get pods -n kube-system | wc -l
# kube-system 네임스페이스에 있는 pod count 개수
Static Pod를 생성하는 방법
# /etc/kubernetes/manifests/ 폴더로 변경한후에
# kubectl 명령어를 통해 -o yaml을 통해 definition-file을 생성하면 pod가 생성된다.
# cd /etc/kubernetes/manifests/
# kubectl run static-busybox --image=busybox --command sleep 1000 --restart=Never --dry-run -o yaml > static-busybox.yaml
해당 폴더안의 definition file을 수정하면 자동으로 kubelet이 파일을 주기적으로 탐색하고 있다.
kubelet 디렉토리 위치 찾는법
### ps -ef | grep kubelet | grep "\--config"
## worker node에 접속햇을때 kubelet의 definition file의 디렉토리 위치를 확인한다
--config=/var/lib/kubelet/config.yaml
해당 내용이 static pod가 아니다.
## vi /var/lib/kubelet/config.yaml
## vi 편집기에서 /staticPodPath 로 검색하면
## /etc/just-to-mess-you 이상한 디렉토리 나온다.
## 디렉토리에 rm 으로 파일 지워주면 된다.
'컨테이너 > Kubernetes' 카테고리의 다른 글
[Kubernetes] (19). Cluster Maintenance (0) | 2021.09.07 |
---|---|
[Kubernetes] (18). Application Lifecycle Management (0) | 2021.09.01 |
[Kubernetes] (17). DaemonSets (0) | 2021.08.30 |
[Kubernetes] (15). Node Affinity / Pod Affinity (0) | 2021.08.30 |
[Kubernetes] (14) Taints and Tolerations (0) | 2021.08.30 |