instruction: Create a Dockerfile for cluster
output: ```dockerfile
  from the manifest comparison,
  and kubeadm will expect a change in the Pod hash, but the kubelet will never update the hash.There are two way to workaround this issue if you see it in your cluster:The etcd upgrade can be skipped between the affected versions and v1.28.3 (or later) by using:kubeadm upgrade {apply|node} [version] --etcd-upgrade=false
  This is not recommended in case a new etcd version was introduced by a later v1.28 patch version.Before upgrade, patch the manifest for the etcd static pod, to remove the problematic defaulted attributes:diff --git a/etc/kubernetes/manifests/etcd_defaults.yaml b/etc/kubernetes/manifests/etcd_origin.yaml
  index d807ccbe0aa..46b35f00e15 100644
  --- a/etc/kubernetes/manifests/etcd_defaults.yaml
  +++ b/etc/kubernetes/manifests/etcd_origin.yaml
  @@ -43,7 +43,6 @@ spec:
   scheme: HTTP
   initialDelaySeconds: 10
   periodSeconds: 10
  - successThreshold: 1
   timeoutSeconds: 15
   name: etcd
   resources:
  @@ -59,26 +58,18 @@ spec:
   scheme: HTTP
   initialDelaySeconds: 10
   periodSeconds: 10
  - successThreshold: 1
   timeoutSeconds: 15
  - terminationMessagePath: /dev/termination-log
  - terminationMessagePolicy: File
   volumeMounts:
   - mountPath: /var/lib/etcd
   name: etcd-data
   - mountPath: /etc/kubernetes/pki/etcd
   name: etcd-certs
  - dnsPolicy: ClusterFirst
  - enableServiceLinks: true
   hostNetwork: true
   priority: 2000001000
   priorityClassName: system-node-critical
  - restartPolicy: Always
  - schedulerName: default-scheduler
   securityContext:
   seccompProfile:
   type: RuntimeDefault
  - terminationGracePeriodSeconds: 30
   volumes:
   - hostPath:
   path: /etc/kubernetes/pki/etcd
  More information can be found in the
  tracking issue for this bug.FeedbackWas this page helpful?Yes
  NoThanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it on
  Stack Overflow.
  Open an issue in the GitHub Repository if you want to
  report a problem
  or
  suggest an improvement.Last modified July 05, 2024 at 4:06 PM PST: kubeadm: use v1beta4 in all docs examples (efc1133fa4)  Create child page
   Create an issue
   Print entire sectionNot possible to join a v1.18 Node to a v1.17 cluster due to missing RBACebtables or some similar executable not found during installationkubeadm blocks waiting for control plane during installationkubeadm blocks when removing managed containersPods in RunContainerError, CrashLoopBackOff or Error statecoredns is stuck in the Pending stateHostPort services do not workPods are not accessible via their Service IPTLS certificate errorsKubelet client certificate rotation failsDefault NIC When using flannel as the pod network in VagrantNon-public IP used for containerscoredns pods have CrashLoopBackOff or Error stateetcd pods restart continuallyNot possible to pass a comma separated list of values to arguments inside a --component-extra-args flagkube-proxy scheduled before node is initialized by cloud-controller-manager/usr is mounted read-only on nodeskubeadm upgrade plan prints out context deadline exceeded error messagekubeadm reset unmounts /var/lib/kubeletCannot use the metrics-server securely in a kubeadm clusterUpgrade fails due to etcd hash not changing© 2025 The Kubernetes Authors | Documentation Distributed under CC BY 4.0© 2025 The Linux Foundation ®. ```