Static Pod는 “API 서버가 없는 환경에서만 쓰는 기능”이라기보다, 실무에서는 주로 컨트롤 플레인 구성요소(kube-apiserver 등)를 노드에서 Pod로 띄우는 방식(특히 kubeadm)과 API 서버 장애 시 트러블슈팅에서 자주 마주칩니다.
1) Static Pod란?
Static Pod(정적 파드)는 kubelet이 API 서버 없이도 특정 디렉터리에 있는 Pod 매니페스트(YAML) 를 읽어서 직접 생성/관리하는 파드입니다.
동작 특성:
- kubelet이 지정 디렉터리를 주기적으로 스캔
- 파일이 있으면 Pod 생성
- 파일을 수정하면 Pod 재생성(변경 적용)
- 파일을 삭제하면 Pod 삭제
- 파드가 죽으면 kubelet이 재시작
중요: Static Pod 방식으로는 Pod만 만들 수 있고, Deployment/ReplicaSet/Service 같은 리소스는 만들 수 없습니다(컨트롤 플레인 컨트롤러가 필요).
2) “클러스터가 있는 경우” mirror pod로 보인다
노드가 클러스터에 붙어 있는 상태에서 kubelet이 static pod를 만들면, kubelet은 API 서버에 Mirror Pod(읽기 전용) 를 만들어서 kubectl get pods로 보이게 합니다.
- 보이긴 하지만 edit/delete로 직접 제어 불가
- 삭제/수정은 노드의 매니페스트 파일을 수정/삭제해야 함
- 이름에 노드명이 붙는 형태가 흔함
3) Static Pod 매니페스트 파일 경로(Manifest Path)는 어디인가?
Static Pod는 kubelet이 “어느 폴더를 볼지” 알아야 합니다. 이 폴더가 바로 static pod manifest 경로입니다.
클러스터 구성 방식에 따라 경로를 찾는 방법이 2가지로 갈립니다.
A) kubelet 실행 옵션에서 바로 지정된 경우
kubelet 서비스 실행 옵션에 다음과 같은 형태가 있을 수 있습니다.
--pod-manifest-path=<PATH>(강의 표현)- 또는 환경/배포판에 따라 비슷한 옵션
즉, kubelet 서비스 파일/유닛을 확인해서 경로를 찾습니다.
B) kubelet이 config 파일을 쓰는 경우(특히 kubeadm에서 흔함)
kubelet 옵션에 --config=<CONFIG_FILE> 가 있으면,
- 그 config 파일 안에 static pod 경로가 들어있습니다(대표적으로
staticPodPath).
따라서 순서는:
- kubelet 서비스 옵션에
--config가 있는지 확인 - 있으면 해당 config 파일에서
staticPodPath를 찾기
4) 실무/시험에서 “경로 찾기”를 빠르게 하는 체크리스트
(1) kubelet 서비스 옵션 확인
- kubelet을 어떻게 띄우는지(서비스/유닛)에서 옵션을 봅니다.
- 여기서
--pod-manifest-path가 있으면 그게 정답입니다.
(2) --config가 있으면 config 파일로 이동
--config=/var/lib/kubelet/config.yaml같은 형태가 보이면- 그 파일에서
staticPodPath를 찾습니다.
(3) 경로를 찾았으면 그 폴더가 “정답 폴더”
- 해당 디렉터리에
kube-apiserver.yaml,kube-scheduler.yaml등이 있으면 거의 확정입니다(구성 방식에 따라 파일명이 다를 수는 있음).
5) (참고) kubeadm에서 흔히 보는 기본 경로
kubeadm 기반에서는 컨트롤 플레인 노드에서 static pod 매니페스트가 보통 아래 경로에 존재하는 경우가 많습니다.
/etc/kubernetes/manifests
다만 “항상 이 경로”라고 단정하기보다, 위에서 설명한 방식대로 kubelet 옵션/config에서 확인하는 습관이 안전합니다.
6) Static Pod가 실무에서 필요한 이유(요약)
- 컨트롤 플레인 컴포넌트를 Pod로 띄우는 방식(kubeadm에서 흔함)
- API 서버 장애 시
kubectl이 안 되므로, 노드에서 매니페스트/컨테이너 상태로 복구해야 함 - Mirror Pod는 읽기 전용이므로, 실제 변경은 매니페스트 파일에서 해야 함
Practice Test Link: https://uklabs.kodekloud.com/topic/practice-test-static-pods-2/
'CKA' 카테고리의 다른 글
| Scheduling - Multiple Schedulers(Custom Scheduler) (0) | 2025.12.29 |
|---|---|
| Scheduling - PriorityClass (0) | 2025.12.29 |
| Scheduling- DaemonSet (0) | 2025.12.29 |
| Scheduling - Resource Limit (0) | 2025.12.29 |
| Scheduling - Node Selector & Node Affinity (0) | 2025.12.29 |