728x90
DaemonSets in Kubernetes
- 지금까지 다양한 파드를 클러스터의 여러 노드에 배포했음.
- ReplicaSet과 배포를 통해 애플리케이션의 여러 복사본을 다양한 작업자 노드에 사용할 수 있게 했음.
- DaemonSet은 ReplicaSet과 유사하게 여러 인스턴스의 파드를 배포하는 데 도움을 줌.
- 하지만 DaemonSet은 클러스터의 각 노드에 파드의 복사본을 하나씩 실행함.
- 새로운 노드가 클러스터에 추가되면 파드의 복사본이 자동으로 그 노드에 추가됨.
- 노드가 제거되면 파드도 자동으로 제거됨.
- DaemonSet은 클러스터의 모든 노드에 항상 파드의 복사본이 존재하도록 보장함.
DaemonSet의 사용 사례
- 클러스터의 각 노드에 모니터링 에이전트나 로그 수집기를 배포하여 클러스터를 더 잘 모니터링할 수 있음.
- DaemonSet은 이러한 모니터링 에이전트를 클러스터의 모든 노드에 파드 형태로 배포하는 데 적합함.
- 클러스터에 변경이 있을 때 모니터링 에이전트를 추가하거나 제거하는 것을 걱정할 필요가 없음.
- DaemonSet이 이를 자동으로 처리해줌.
- Kubernetes 아키텍처를 논의할 때
- 클러스터의 모든 노드에 필요한 작업자 노드 구성 요소 중 하나인 kube-proxy가 있었음.
- kube-proxy 구성 요소는 클러스터에서 DaemonSet으로 배포될 수 있음.
- 네트워킹 솔루션인 Vivenet과 같은 네트워킹 에이전트를 클러스터의 각 노드에 배포하는 것도 좋은 사용 사례임.
DaemonSet 생성 방법
- DaemonSet 생성은 ReplicaSet 생성 프로세스와 유사함.
- 템플릿 섹션 아래에 중첩된 파드 사양과 DaemonSet을 파드에 연결하는 셀렉터가 있음.
- DaemonSet 정의 파일은 유사한 구조를 가짐.
- API 버전, kind, metadata, spec으로 시작함.
- API 버전은 apps/v1, kind는 DaemonSet, 이름은 Monitoring Daemon으로 설정함.
- spec 아래에는 셀렉터와 파드 사양 템플릿이 있음.
- ReplicaSet 정의와 거의 동일하지만, kind가 DaemonSet임.
- 셀렉터의 라벨이 파드 템플릿의 라벨과 일치하도록 함.
- 준비가 완료되면 kubectl create daemonset 명령어를 사용하여 DaemonSet을 생성함.
- 생성된 DaemonSet을 보기 위해 kubectl get daemonset 명령어를 실행함.
- 더 많은 정보를 보기 위해 kubectl describe daemonset 명령어를 실행함.
DaemonSet의 작동 방식
- DaemonSet은 각 노드에 파드를 어떻게 스케줄링하고 모든 노드에 파드가 있는지 어떻게 보장하는가?
- 클러스터의 각 노드에 파드를 스케줄링해야 한다면 어떻게 할 것인가?
- 이전 강의 중 하나에서 파드 사양에 nodeName 속성을 설정하여
- 스케줄러를 우회하고 파드를 직접 노드에 배치하는 방법을 논의했음.
- 이것이 한 가지 접근 방식임.
- 각 파드에 nodeName 속성을 설정한 다음 생성하면 해당 노드에 자동으로 배치됨.
- Kubernetes 버전 1.12까지는 이렇게 작동했음.
- 버전 1.12 이후로는 DaemonSet이 기본 스케줄러와 노드 어피니티 규칙을 사용하여 노드에 파드를 스케줄링함.
728x90
'자격증 > CKA' 카테고리의 다른 글
[CKA] Udemy Lightning Lab (1/7) (2) | 2024.07.17 |
---|---|
[CKA] Udemy 74. Static Pods (0) | 2024.07.13 |
[CKA] Udemy 66. Taints and Tolerations vs Node Affinity (0) | 2024.07.13 |
[CKA] Udemy 63. Node Affinity (0) | 2024.07.13 |
[CKA] Udemy 59. Taints and Tolerations (0) | 2024.07.10 |