전공공부
[K8S - CKA] Static Pods 본문
1. Static Pod
kubelet은 별도의 클러스터 형태가 아니라 kubelet과 docker만 있다면 pod를 만들 수 있습니다. 그러면 kube api 서버 없이는 어떻게 동작하는지 봅시다.
/etc/kubernetes/manifests 에 pod.yaml 파일을 두면 이 디렉토리 하부의 파일들은 포드로 읽을 수 있습니다.

application이 내려가게 되면 자동으로 kubelet이 pod를 재생성합니다. (만일, 완전히 삭제를 하려면 /etc/kubernetes/manifests에서 삭제하면 포드가 완전히 삭제됩니다.)
이것이 Static Pod 입니다.
kubelet은 pod level만을 이해 할 수 있습니다. 그렇기 때문에 static pod를 만들 수 있습니다.


Static Pod가 만들어지면 docker ps 명령어로 pod를 확인 할 수 있습니다.

그러면 pod를 만들때 kubelet을 통해서 만들수 있고 ETCD, API Server를 통해서도 만들 수 있을까?
- 결론은 만들 수 있다. kubelet은 일반적인 pod를 만들고 이런식의 static pod를 만들 수 있습니다.
다만, static pod로 만든 pod는 kube-apiserver로는 읽기 전용 미러로만 확인 할 수 있고 직접 만들 수는 없다. (만드려면 아까와 같이 /etc/kubernetes/manifests 여기에 pod.yaml을 직접 생성해야만 한다.)

위 명령어를 보면 알겠지만 staticPod로 만들어진 Pod는 모두 자기 자신이 만들어진 node의 이름이 마지막에 붙는다.
2. Use Case
Static Pod는 Control plain에 의존적이지 않으므로 사용한다. Control plane components(kube-apiserver, kube-controller-manager, kube-scheduler,...)로 만들 수 있기 때문이다.
우선 kubelet을 마스터 노드에 설치를하고 나서 pod.yaml을 알맞게 구성해서 Docker image를 이용해서 Control plane components로 만들어둔다.
3. DaemonSet vs. Static Pod
DaemonSet : 일반적으로 모니터링을 하기 위함이고 ApiServer를 이용해서 만들어지는 컴포넌트이다.
StaticPod : Control plane을 구성하는 컴포넌트를 만든다. Kubelet을 이용해서 만들어진다.
공통점은 둘 다 Scheduler의 영향을 받지 않는다는 점이다.
'Study > K8S' 카테고리의 다른 글
[K8S - CKA] Rolling Updates ands Rollbacks (0) | 2023.10.28 |
---|---|
[K8S - CKA] Monitor Cluster Components (0) | 2023.10.28 |
[K8S - CKA] Multiple Schedulers (0) | 2023.10.15 |
[K8S - CKA] Node Selectors & Node Affinity (0) | 2023.10.03 |
[K8S - CKA] Scheduling & Taints and Tolerant (0) | 2023.09.10 |