본문 바로가기

kubernetes(cka)

[Kubernetes, cka] 08. Static Pods

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과 같은 더 고급 기능을 사용하는 것이 권장됩니다.