kube api 를 통해서 노드 내에서 파드가 생성되는게 아니라, 노드에 자체적인 yaml 파일을 생성해서 이걸 kubelet이 보고 pod를 관리해주는걸 Static Pod 라고함. 이런 기능은 kubelet이 pod 만 담당하기에 파드만 됨.
정적 Pod의 주요 특징 및 사용 사례
특징설명
독립성 | 정적 Pod는 kube-apiserver가 없이도 kubelet에 의해 직접 관리됩니다. |
자동 생성 및 복구 | 노드에 kubelet이 실행되는 한, 지정된 디렉토리에 정의 파일이 있으면 정적 Pod가 자동으로 생성되고, 애플리케이션이 충돌하는 경우 자동으로 재시작됩니다. |
클러스터 제어 평면 구성 요소 배포 | Kubernetes 클러스터의 핵심 구성 요소(예: kube-apiserver, etcd)를 Pod로 배포하는 데 사용됩니다. |
정적 Pod 설정 및 관리
- Pod 정의 파일 위치 지정: kubelet 설정에서 --pod-manifest-path 옵션을 사용하여 정적 Pod 정의 파일을 읽을 디렉토리 경로를 지정합니다.
- 정적 Pod 생성: 정적 Pod 정의 파일을 해당 디렉토리에 배치하면 kubelet이 이를 감지하고 Pod를 자동으로 생성합니다.
- 정적 Pod 관찰: 정적 Pod는 kubectl get pods 명령을 사용할 때 API 서버를 통해 볼 수 있으나, 이들은 읽기 전용이며 API 서버를 통한 수정이 불가능합니다.
정적 Pod와 DaemonSet의 차이점
기준정적 PodDaemonSet
관리 방법 | kubelet에 의해 직접 관리됩니다. | kube-apiserver를 통해 DaemonSet 컨트롤러에 의해 관리됩니다. |
용도 | 주로 클러스터 제어 평면 구성 요소 배포에 사용됩니다. | 클러스터의 모든 노드에 특정 애플리케이션(예: 모니터링 에이전트)을 실행하는 데 사용됩니다. |
클러스터 구성 요소 | 클러스터 구성 요소 자체를 배포하는 데 사용할 수 있습니다. | 클러스터가 이미 설정되고 운영되는 상태에서 사용됩니다. |
정적 Pod는 Kubernetes 클러스터의 초기 설정과 관리에 핵심적인 역할을 하며, 클러스터 운영을 단순화하고 자동화하는 데 도움을 줍니다. 하지만, 일반적인 애플리케이션 배포에는 Deployment, ReplicaSet, DaemonSet과 같은 더 고급 기능을 사용하는 것이 권장됩니다.
'kubernetes(cka)' 카테고리의 다른 글
[Kubernetes, cka] 10. Monitoring & Logging (0) | 2024.04.10 |
---|---|
[Kubernetes, cka] 09. Scheduling (0) | 2024.04.10 |
[Kubernetes, cka] 07. DaemonSets (0) | 2024.04.01 |
[Kubernetes, cka] 06. Manual Scheduling (0) | 2024.04.01 |
[Kubernetes, cka] 05. Service, Namespaces (1) | 2024.03.24 |