Daemon Sets
- DaemonSets are like replicaSet and deployment
- While replicaSets and deployments makes sure that sufficient number of pods are running as defined in the replicas
- DaemonSets make sure that atleast one pod runs on each node of the kubernetes cluster
- If a new node is added to the cluster, DaemonSet automatically runs a pod on that node
- Based on the node selector and node affinity rules, you can run DaemonSets only on targeted nodes
- Some of the use cases of the DaemonSet are monitoring, log collector etc
- Say you want to monitor pods running on the nodes, DaemonSet is perfect to make sure that monitoring agent is running via pod on every node
- kube-proxy runs as a DaemonSet
- DaemonSet definition file looks very similar to replicaSet definition
- Before v1.12 kubernetes didnt had a way to create a pod on each node. The only way was to create a pod definition by setting the node name property
- From v1.12 kubernetes now uses the combination of node affinity rules along with the daemon sets to schedule the pod on the node
daemon-set-definition.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: monitoring-daemon-agent
spec:
selector:
matchLabels:
app: monitoring-pod-agent
template:
metadata:
labels:
app: monitoring-pod-agent
spec:
containers:
- image: omi-agent
name: omi-agent-container
kubectl create -f daemon-set-definition.yaml
-> Create daemonset using the definition file
kubectl get daemonsets
-> View existing daemon sets
kubectl describle daemonset <daemon-set-name>
-> Get more information of the daemon-set deployed
Comments
Post a Comment