Symptom: After a virtual node is deployed in a Kubernetes cluster, kube-proxy and CoreDNS are scheduled to the virtual node and fail to start.
Possible cause: When Kubernetes schedules kube-proxy and CoreDNS, Kubernetes ignores their taints. Therefore, they may be scheduled to the virtual node.
Solution: Add the following content to the YAML files of kube-proxy and CoreDNS:
affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: type operator: NotIn values: - virtual-kubelet