본문 바로가기
[DevOps]/Kubernetes

kubernetes - DaemonSet, Static Pod

by 황원용 2023. 12. 4.
728x90

📌 DaemonSet

  • 모든 노드에 특정 파드를 배포하고 관리하는 컨트롤러이다.
  • 레플리카셋과 비슷한데 모든 노드에서 특정 작업이 실행될 수 있도록 하기위해 사용한다.
    • 예를 들어, 모든 노드에서 로그 수집을 위한 파드를 실행하거나, 모든 노드에서 특정 네트워크 프록시를 실행할 수 있다.
    • 노드가 추가되거나 제거될 때 자동으로 파드를 생성하거나 삭제하여 노드의 상태 변화에 따라 자동으로 관리할 수 있다.
    • 각 노드의 정보를 수집하거나 노드마다 필수적으로 실행되어야 하는 파드를 배포 관리한다.
  • ReplicaSet과 유사한 방식으로 동작한다.
    • ReplicaSet은 파드 수를 정적으로 지정하지만, DaemonSet은 노드 수에 따라 파드 수가 동적으로 조절된다.
      • 노드가 3개면 파드도 각 노드마다 하나씩 총 3개
    • 또한, 노드 선택 기준을 지정하여 특정 노드에만 파드를 배포하는 것도 가능하다.

 

📌 Static Pod

  • 쿠버네티스 클러스터 내에서 직접 실행되는 파드이다.
  • kubelet이라는 에이전트 프로세스가 노드에서 직접 관리하며 쿠버네티스 API 서버와는 독립적으로 실행된다.
  • 일반적으로 노드에서 실행되는 시스템 데몬이나 로그 수집기와 같은 작업을 수행하기 위해 사용된다.
  • Static Pod는 각 노드의 kubelet이 자동으로 생성하며 kubelet이 시작될 때 특정 디렉터리에 있는 YAML 파일을 읽어 파드를 실행한다.
  • 이를 통해 쿠버네티스 API 서버와 통신하지 않고도 노드에서 파드를 실행할 수 있다.
  • 또한, Static Pod는 DaemonSet과 달리 노드에서만 실행되므로 노드가 다운되거나 교체되어도 자동으로 파드가 재시작된다.

 

🤔 DaemonSet과 Static Pod의 차이점

배포 대상

  • DaemonSet은 모든 노드에 특정 파드를 배포하고 관리하는 컨트롤러이며 Static Pod는 특정 노드에서 실행되는 파드이다.
  • DaemonSet은 클러스터 내 모든 혹은 특정 노드에서 실행되는 파드를 관리하고, Static Pod는 개별 노드에서 실행되는 파드를 관리합니다.

관리 방식

  • DaemonSet은 클러스터의 상태를 모니터링하고 파드 수를 동적으로 조절하여 노드의 상태 변화에 따라 자동으로 관리한다.
  • Static Pod는 kubelet이 직접 실행하므로, 쿠버네티스 API 서버와는 독립적으로 실행된다.
    • 따라서 Static Pod는 클러스터의 상태를 모니터링하지 않는다.
  • DaemonSet은 모든 노드에서 동일한 작업을 수행하거나, 로그 수집을 위한 파드와 같은 작업을 모든 노드에 배포할 때 사용된다.
  • Static Pod는 개별 노드에서 실행되는 시스템 데몬이나 로그 수집기와 같은 작업을 수행하기 위해 사용된다.

 

 

 

참고

뤼튼

 

728x90