DaemonSet
K8s ํด๋ฌ์คํฐ์ ๋ ธ๋ ์ ์ฒด์ Pod์ ๋์ธ ๋ ์ฌ์ฉํ๋ โ์ปจํธ๋กค๋ฌโ๋ค.
์ปจํธ๋กค๋ฌ๋ K8s์ ๊ธฐ๋ณธ ์ค๋ธ์ ํธ(Pod)์ ์์ฑํ๊ณ , ์ด๋ฅผ ๊ด๋ฆฌํ๋ ์ญํ ์ ํ๋ค. ReplicaSet, Deployment, DaemonSet์ด ์ปจํธ๋กค๋ฌ ๋ฆฌ์์ค์ ์ํ๋ค.
DaemonSet์ ๋ชจ๋ ๋ ธ๋์ Pod์ ๋์์ค๋ค. ๊ทธ๋์ ๋ก๊น (Logging)์ด๋ K8s ๋คํธ์ํฌ ๊ด๋ จ Pod์ด DaemonSet์ผ๋ก ๊ด๋ฆฌ๋๋ค.
DaemonSet ์์ฑ
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: my-daemonset
namespace: kube-system
spec:
selector:
matchLabels:
name: my-daemon
updateStrategy:
type: RollingUpdate
template:
...
๋ฐ๋ชฌ์ ์์
CNI Network Plugin
https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml
Network Policy ๋ฆฌ์์ค ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ Network Plugin์ DaemonSet ๋ฆฌ์์ค๋ก ์ด์ํ๋ค. weave net, calico, flannel ๋ฑ์ด CNI Network Plugin์ด๋ค.
(DaemonSet์ ๋ํ ๋ด์ฉ์ ์๋์ง๋ง) Service ๊ฒ์ ์ ๋์จ์ธ โcoreDNSโ๊ฐ ๋์ํ๋ ค๋ฉด ์ด๋ฐ ๋คํธ์ํฌ ํ๋ฌ๊ทธ์ธ์ด ์ค์น๋์ด ์์ด์ผ ํ๋ค.
๋ชจ๋ํฐ๋ง ๋๊ตฌ
https://www.datadoghq.com/blog/monitoring-kubernetes-with-datadog/
Datadog๊ณผ ๊ฐ์ ์ธํ๋ผ ๋ชจ๋ํฐ๋ง ๋๊ตฌ ์ญ์ DaemonSet ๋ฆฌ์์ค๋ก ์ด์ํ๋ค.
kube-proxy
https://github.com/openshift/cluster-network-operator/blob/master/bindata/kube-proxy/kube-proxy.yaml
K8s ํด๋ฌ์คํฐ์์ Service ์ค๋ธ์ ํธ๊ฐ ๋์ํ๋ ๊ฒ์ ๊ฐ๋ฅ์ผ ํ๋ ์กด์ฌ๋ค. kube-proxy๋ ์๋ก์ด Service๊ฐ ์๊ธธ ๋๋ง๋ค ํด๋น ์๋น์ค์ ๋ฐ์ธ๋ฉ๋ Pod์ผ๋ก ํธ๋ํฝ์ด ๊ฐ ์ ์๋๋ก ๊ท์น์ ๋ง๋ค์ด ์ ์ฅํ๋ค.
์ฆ, Service ๋ฆฌ์์ค๊ฐ ์ ์ ๋์ํ๋ ค๋ฉด, kube-proxy DaemonSet์ด ์ ๊ตฌ์ถ๋์ด ์์ด์ผ ํ๋ค. Service ๋ฆฌ์์ค๋ ์ค์ ๋ก ์กด์ฌํด ๋ ธ๋์ ์์์ ์ ์ ํ๋ ์กด์ฌ๊ฐ ์๋๋ผ kube-proxy์ ๊ท์น์ผ ๋ฟ์ด๊ธฐ ๋๋ฌธ์ด๋ค!
kubelet์ DaemonSet์ด ์๋๋ค
[stackoverflow] Is the kubernetes kubelet a DaemonSet?
K8s ํด๋ฌ์คํฐ์ ๋ํ ์ํคํ ์ฒ ๊ทธ๋ฆผ์ ๋ณด๋ฉด, ๊ฐ ๋ ธ๋์ kubelet์ kube-proxy๊ฐ ์กด์ฌํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์์์ kube-proxy๋ DaemonSet์ผ๋ก ๋์ํ๋ค๋ ๊ฒ์ ๋ดค๋๋ฐ, kubelet๋ ๊ทธ๋ด๊น? ๋ต์ โkubelet์ Pod์ด ์๋๋คโ!
kubelet์ Pod์ด ์๋๋ผ ๋ฐ๋ชฌ ํ๋ก์ธ์ค(daemon process)๋ค. K8s ํด๋ฌ์คํฐ ๋์ํ ์ ์๊ฒ ํ๋ ํ๋ก์ธ์ค๋ก (1) ๋ ธ๋๋ฅผ ํด๋ฌ์คํฐ์ ๋ฑ๋กํ๊ณ (2) controlplane์ผ๋ก ๋ถํฐ ์์ฒญ ๋ฐ์ ๋ฆฌ์์ค ์์ฑ ์์ฒญ์ ์ํํ๋ ์ญํ ์ ํ๋ค.