스태틱 파드 는 API 서버 없이 특정 노드에 있는 kubelet 데몬에 의해 직접 관리된다. 컨트롤 플레인에 의해 관리되는 파드(예를 들어 디플로이먼트(Deployment))와는 달리, kubelet 이 각각의 스태틱 파드를 감시한다. (만약 실패할 경우 다시 구동한다.)
스태틱 파드는 항상 특정 노드에 있는 하나의 Kubelet에 매여 있다.
Kubelet 은 각각의 스태틱 파드에 대하여 쿠버네티스 API 서버에서 미러 파드(mirror pod)를 생성하려고 자동으로 시도한다. 즉, 노드에서 구동되는 파드는 API 서버에 의해서 볼 수 있지만, API 서버에서 제어될 수는 없다. 파드 이름에는 노드 호스트 이름 앞에 하이픈을 붙여 접미사로 추가된다.
static pod yml을 모아놓는 경로에 yaml 파일 생성하면 자동으로 static pod가 생성된다.
당연히 static pod yml파일이 존재하는 위치는 노드마다 각각 존재하니까 주의할 것
일반 파드처럼 kubectl delete pod 명령을 수행해도 삭제되지 않음
static pod yaml 파일을 삭제해야 static pod가 삭제된다.
kubelet 설정 파일
/var/lib/kubelet/config.yaml
static pod yaml 파일 경로 -> kubelet 설정 파일에서 확인 가능
/var/lib/kubelet/config.yaml
...
staticPodPath: /etc/kubernetes/manifests
...
pod 이름 끝에 노드 이름이 붙는 파드
controlplane /etc/kubernetes/manifests ➜ kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-flannel kube-flannel-ds-fp5p6 1/1 Running 0 35m
kube-flannel kube-flannel-ds-nzhtm 1/1 Running 0 35m
kube-system coredns-5d78c9869d-9zkdv 1/1 Running 0 35m
kube-system coredns-5d78c9869d-z2ht2 1/1 Running 0 35m
kube-system etcd-controlplane 1/1 Running 0 35m
kube-system kube-apiserver-controlplane 1/1 Running 0 35m
kube-system kube-controller-manager-controlplane 1/1 Running 0 35m
kube-system kube-proxy-85lfd 1/1 Running 0 35m
kube-system kube-proxy-mstqb 1/1 Running 0 35m
kube-system kube-scheduler-controlplane 1/1 Running 0 35m
# static pod
etcd-controlplane
kube-apiserver-controlplane
kube-controller-manager-controlplane
kube-scheduler-controlplane
ownerReferences 찾아보기
yaml파일에서 찾아볼 수 있음
controlplane /etc/kubernetes/manifests ➜ kubectl get pod static-greenbox-node01 -o yaml
apiVersion: v1
kind: Pod
metadata:
annotations:
kubernetes.io/config.hash: d15d7612777f8a5f2681a387999469fd
kubernetes.io/config.mirror: d15d7612777f8a5f2681a387999469fd
kubernetes.io/config.seen: "2023-07-11T09:24:07.192388320-04:00"
kubernetes.io/config.source: file
creationTimestamp: "2023-07-11T13:24:07Z"
labels:
run: static-greenbox
name: static-greenbox-node01
namespace: default
ownerReferences:
- apiVersion: v1
controller: true
kind: Node
name: node01
uid: 8f7e084d-356a-4952-a7dc-cf191bd7888e