OpenShift DaemonSet Operations: Difference between revisions
Line 61: | Line 61: | ||
=Creating Daemon Sets= | =Creating Daemon Sets= | ||
{{External|https://docs.openshift.com/container-platform/ | {{External|https://docs.openshift.com/container-platform/latest/dev_guide/daemonsets.html#dev-guide-creating-daemonsets}} |
Revision as of 18:19, 9 February 2018
External
Internal
Obtaining Information about DaemonSets
The name of the DaemonSet that manages a pod is available in pod's "oc describe pod" output, as value for the "Controllers:" label. That value can be used to get the DaemonSet definition:
oc describe DaemonSet/<daemon-set-name>
Example:
oc describe DaemonSet/logging-fluentd
Name: logging-fluentd Image(s): registry.access.redhat.com/openshift3/logging-fluentd:3.5.0 Selector: component=fluentd,provider=openshift Node-Selector: logging-infra-fluentd=true Labels: component=fluentd logging-infra=fluentd provider=openshift Desired Number of Nodes Scheduled: 7 Current Number of Nodes Scheduled: 7 Number of Nodes Misscheduled: 0 Pods Status: 2 Running / 0 Waiting / 0 Succeeded / 5 Failed No events.
Also:
oc get daemonsets
oc get -o yaml daemonset logging-fluentd
Updating Pods Managed by DaemonSets
As long as a pod managed by a DaemonSet is running, it is impervious to changes in its own template: the DaemonSet won't react and attempt to stop it and recreate it. This behavior is consistent with the static nature of running pods. Moreover, if the definition of a DaemonSet-managed pod is completely deleted, and then recreated based on a new template, but the same label selector, the DaemonSet will recognize any running 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 the pods managed by a DaemonSet, update the pod's template, and force new pod replica creation by deleting the existing replicas.
Updating the DaemonSet Definition
oc edit daemonset/<daemon-set-name>
Procedure
1. Update the DaemonSet definition, if needed.
2. Update the pod definition, if needed.
3. Delete the existing pods, they will be recreated by the DaemonSet:
oc delete pod/logging-fluentd-3kz30 oc delete pod/logging-fluentd-d150b ...