* EtcdMemberHealthy: Machine is deleting * Machine <node-name>: * Deleting: Machine deletion in progress since more than 15m, stage: WaitingForPreTerminateHook * Control plane components: Machine is deleting * EtcdMemberHealthy: Machine is deleting Message: Waiting for pre-terminate hooks to succeed (hooks: pre-terminate.delete.hook.machine.cluster.x-k8s.io/kcp-cleanup) Observed Generation: 4 Reason: WaitingForPreTerminateHook Status: True Type: Deleting
"Reconciler error" err="failed to move leadership to candidate Machine <Node-name>: failed to create etcd client: etcd leader is reported as <etcd-ID of the node> with name \"<Node-name>\", but we couldn't find a corresponding Node in the cluster" controller="kubeadmcontrolplane" controllerGroup="controlplane.cluster.x-k8s.io" controllerKind="KubeadmControlPlane" KubeadmControlPlane="<namespace>/<name of the KCP>" namespace="<namespace>" name="<name of the KCP>" reconcileID="<ID>"
Test-CP-node1 Ready,SchedulingDisabled <none> Test-CP-node2 Ready control-plane Test-CP-node3 Ready control-plane
* Certificate signing request was sent to apiserver and approval was received.* The Kubelet was informed of the new secure connection details.* Control plane label and taint were applied to the new node.* The Kubernetes control plane instances scaled up.* A new etcd member was added to the local/stacked etcd cluster.VMware vSphere Kubernetes Service
In Kubernetes, a Control Plane node has some specific roles/labels and taints associated with it which differentiate it from other worker/workload nodes in the cluster. CAPI/KCP also relies on these roles/labels to identify a "Control Plane" node within the cluster and take any necessary action required on it. Below are the minimum expected Labels and Taints on a Control Plane node.Labels: node-role.kubernetes.io/control-plane= node-role.kubernetes.io/master=
Taints: node-role.kubernetes.io/control-plane:NoSchedule
In the event these labels are missing, CAPI is not able to recognize the node and therefore is not able to perform a re-conciliation/remediation on it, if required.
Add the missing role/label on the Control Plane node for CAPI to successfully complete its reconciliation. The same shall remove the concerned node gracefully and spin up a new node in its replacement without messing up the etcd quorum.
kubectl label node <node name> node-role.kubernetes.io/control-plane=""kubectl label node <node name> node-role.kubernetes.io/master=""kubectl taint node <node name> node-role.kubernetes.io/control-plane="":NoScheduleroot@<ID> [ ~ ]# k rollout restart deployment capi-kubeadm-control-plane-controller-manager -n svc-tkg-domain-c<ID>deployment.apps/capi-kubeadm-control-plane-controller-manager restartedOnce the same is done, the cluster re-conciliation should start, and the Control Plane node stuck in "Deleting" should be gone and replaced with a new node altogether.