<p>We have deployed etcd of k8s using static pod, it's 3 of them. We want to upgrade pod to define some labels and readiness probe for them. I have searched but found no questions/article mentioned. So I'd like to know the best practice for upgrading static pod.</p>

<p>For example, I found modifying yaml file directly may result pod unscheduled for a long time, maybe I should remove the old file and create a new file?</p>

xudifsd
<p>You need to recreate the pod if you want to define readiness probe for it, for labels an edit should suffice.</p>

<p>Following error is thrown by Kubernetes if editing readinessProbe:</p>

<pre><code># * spec: Forbidden: pod updates may not change fields other than `spec.containers[*].image`, `spec.initContainers[*].image`, `spec.activeDeadlineSeconds` or `spec.tolerations` (only additions to existing tolerations)
</code></pre>

<p>See also <a href="https://stackoverflow.com/a/40363057/499839">https://stackoverflow.com/a/40363057/499839</a></p>

<p>Have you considered using DaemonSets? <a href="https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/" rel="nofollow noreferrer">https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/</a></p>
