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