OpenShift DaemonSet Operations: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 48: Line 48:
==Procedure==
==Procedure==


1. Update the DaemonSet definition (if needed)
1. Update the DaemonSet definition, if needed.


2. Update the pod definition (if needed)
2. Update the pod definition, if needed.


3. Delete the existing pods, they will be recreated by the DaemonSet:
3. Delete the existing pods, they will be recreated by the DaemonSet:
oc delete


   oc delete pod/logging-fluentd-3kz30
   oc delete pod/logging-fluentd-3kz30
   oc delete pod/logging-fluentd-d150b
   oc delete pod/logging-fluentd-d150b
   ...
   ...

Revision as of 00:46, 31 July 2017

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.

Creating Daemon Sets

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


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