Static Pods
- Master node: etcd, kube-apiserver, controller-manager, kube-scheduler
- Worker node: kubelet, container runtime engine
만일 worker node만 있는 상태라면?
- master node도 없고 정말 단일 worker node만 있는 상태에서 pod 생성이 가능할까?
/etc/kubernetes/mainfests에 pod yaml 파일을 넣어둔다면 kubelet이 restart 되더라도 살아있도록 할 수 있음
- 해당 디렉터리에서 yaml 파일을 삭제한다면 pod는 더 이상 자동으로 올라오지 않음
- 이러한 pod를 static pod라고 부름
- 다만 이러한 방식으로는 오직 pod만 정의 가능함
- kubelet은 pod 수준에서 이해 가능하기 때문
static pod 경로 옵션 확인 방법
- kubelet.service 파일에서 static pod 경로 옵션 찾기
- staticPodPath: /etc/kubernets/mainfests
static pod 찾는 명령어
docker ps
- 쿠버네티스 클러스터가 없을 시 docker 명령어를 사용하여 확인 가능
그렇다면, static pod를 선언한 상태에서 API 서버도 존재할 때
- 중복된 파드 생성 요청이 가능할까?
- 두 가지 종류의 파드를 동시에 파드 생성 가능
- API 서버에서 static pod도 인식 가능
- 다만 일반적인 파드처럼 편집 또는 삭제는 불가능
- 삭제를 원한다면 해당 파일 경로에서 pod yaml 파일을 삭제해야함
Use Cases - 왜 static pod를 사용할까?
- master node에서 apiserver, controller, etcd 등 yaml 파일을 정적 파드로 정의함
- Kubernetes 핵심 컴포넌트 부팅용... 이렇게 이해하였음
- 따로 고정용 pod가 필요하다면 사용하기도 할듯...