PaaS/Kubernetes

(Kubernetes) DeamonSet And StaticPod

armyost 2021. 3. 22. 21:36
728x90

데몬셋
데몬셋 은 모든(또는 일부) 노드가 파드의 사본을 실행하도록 한다. 노드가 클러스터에 추가되면 파드도 추가된다. 노드가 클러스터에서 제거되면 해당 파드는 가비지(garbage)로 수집된다. 데몬셋을 삭제하면 데몬셋이 생성한 파드들이 정리된다.

데몬셋의 일부 대표적인 용도는 다음과 같다.

모든 노드에서 클러스터 스토리지 데몬 실행
모든 노드에서 로그 수집 데몬 실행
모든 노드에서 노드 모니터링 데몬 실행
단순한 케이스에서는, 각 데몬 유형의 처리를 위해서 모든 노드를 커버하는 하나의 데몬셋이 사용된다. 더 복잡한 구성에서는 단일 유형의 데몬에 여러 데몬셋을 사용할 수 있지만, 각기 다른 하드웨어 유형에 따라 서로 다른 플래그, 메모리, CPU 요구가 달라진다.

 

DaemonSet을 Create하려면 ReplicaSet 혹은 Deployment를 생성하고 수정한다.
kubectl create deployment [elasticsearch] --image=[nginx] -o yaml --dry-run=client> elasticsearch.yaml

 

 

 

스태틱 파드
스태틱 파드 는 API 서버 없이 특정 노드에 있는 kubelet 데몬에 의해 직접 관리된다. 컨트롤 플레인에 의해 관리되는 파드(예를 들어 디플로이먼트(Deployment))와는 달리, kubelet 이 각각의 스태틱 파드를 감시한다. (만약 실패할 경우 다시 구동한다.)

스태틱 파드는 항상 특정 노드에 있는 하나의 Kubelet에 매여 있다.

Kubelet 은 각각의 스태틱 파드에 대하여 쿠버네티스 API 서버에서 미러 파드(mirror pod)를 생성하려고 자동으로 시도한다. 즉, 노드에서 구동되는 파드는 API 서버에 의해서 볼 수 있지만, API 서버에서 제어될 수는 없다. 파드 이름에는 노드 호스트 이름 앞에 하이픈을 붙여 접미사로 추가된다. ex) staticnode-master

 

스태틱파드는 특정 location에 yaml파일이 위치하는데, 이는 kubelet의 --config 파일에 정의되어 있다. 

staticPodPath 부분을 참고하면 실제 static-POD를 생성하는 yaml파일 위치를 알 수 있다.

'PaaS > Kubernetes' 카테고리의 다른 글

(Kubernetes) Monitoring  (0) 2021.03.23
(Kubernetes) Scheduler  (0) 2021.03.23
(Kubernetes) Resource Limits 와 Edit POD  (0) 2021.03.21
(Kubernetes)NodeSelector And NodeAffinity  (0) 2021.03.21
(Kubernetes) kubectl 커맨드 모음 -2  (0) 2021.03.17