OpenShift DaemonSet Operations

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

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

DaemonSet LifeCycle

Creation

Monitor project's events with

oc get events 

for errors.

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
 ...

Image Updates

If the image is updated in the repository, deleting the pod will pull the latest image upon re-creation.

Creating Daemon Sets

A DaemonSet can be created using the template described below. A template can also be generated from an existing daemonset, like "logging"/fluentd:

oc export ds/logging-fluentd --as-template=daemonset-template > daemonset-template.yaml



https://docs.openshift.com/container-platform/3.7/dev_guide/daemonsets.html#dev-guide-creating-daemonsets