A daemonset can be used to run replicas of a pod on specific or all nodes in an {product-title} cluster.
Use daemonsets to create shared storage, run a logging pod on every node in your cluster, or deploy a monitoring agent on every node.
For more information on daemonsets, see the Kubernetes documentation.
Important
|
Before creating daemonsets, ensure you have been given the required role by your {product-title} administrator. |
When creating daemonsets, the nodeSelector
field is used to indicate the
nodes on which the daemonset should deploy replicas.
-
Define the daemonset yaml file:
apiVersion: extensions/v1beta1 kind: DaemonSet metadata: name: hello-daemonset spec: selector: matchLabels: name: hello-daemonset (1) template: metadata: labels: name: hello-daemonset (2) spec: nodeSelector: (3) type: infra containers: - image: openshift/hello-openshift imagePullPolicy: Always name: registry ports: - containerPort: 80 protocol: TCP resources: {} terminationMessagePath: /dev/termination-log serviceAccount: default terminationGracePeriodSeconds: 10
-
The label selector that determines which pods belong to the daemonset.
-
The pod template’s label selector. Must match the label selector above.
-
The node selector that determines on which nodes pod replicas should be deployed.
-
-
Create the daemonset object:
oc create -f daemonset.yaml
-
To verify that the pods were created, and that each node has a pod replica:
-
Find the daemonset pods:
$ oc get pods hello-daemonset-cx6md 1/1 Running 0 2m hello-daemonset-e3md9 1/1 Running 0 2m
-
View the pods to verify the pod has been placed onto the node:
$ oc describe pod/hello-daemonset-cx6md|grep Node Node: openshift-node01.hostname.com/10.14.20.134 $ oc describe pod/hello-daemonset-e3md9|grep Node Node: openshift-node02.hostname.com/10.14.20.137
-
Important
|
Currently, updating a daemonset’s pod template does not affect existing pod replicas. Moreover, if you delete a daemonset and then create a new daemonset with a different template but the same label selector, it will recognize any existing pod replicas as having matching labels and thus will not update them or create new replicas despite a mismatch in the pod template. To update a daemonset, force new pod replicas to be created by deleting the old replicas or nodes. |