During a vSphere Supervisor workload cluster upgrade, cluster conditions report unhealthy status for Antrea. The vSphere Kubernetes Cluster reflects a Ready False state. While the workload cluster successfully deploys nodes and pods, the kube-apiserver fails to process requests for Antrea CustomResourceDefinitions (CRDs), resulting in a "ServiceUnavailable" error or intermittent Bad Status 404 responses. The issue manifests with the following symptoms:
cluster returns either of the below unhealthy conditions:kubectl describe cluster <cluster_name> -n <namespace>message: ClusterBootstrap conditions Antrea-ReconcileFailed indicate reconcile has failed reason: ClusterBootstrapFailed
reason: ContainerNetworkingNotInstalled severity: Warning status: "False" type: NetworkProviderReconciled
clusterbootstrap for the affected workload cluster returns the similar kapp errors to the below:kubectl describe clusterbootstrap <clusterbootstrap_name> -n <namespace>message: |- kapp: Error: Timed out waiting after 30s for resources: - apiservice/v1beta1.system.antrea.io (apiregistration.k8s.io/v1) cluster - apiservice/v1beta2.controlplane.antrea.io (apiregistration.k8s.io/v1) cluster - apiservice/v1alpha1.stats.antrea.io (apiregistration.k8s.io/v1) clusterstatus: "True" type: Antrea-ReconcileFailed
kubectl commands on the antrea CustomResourceDefintions (CRDs) associated with the above affected antrea APIservices returns an error message similar to the below:Error from server (ServiceUnavailable): the server is currently unable to handle the request
Available False state with a FailedDiscoveryCheck error.kubectl get apiservice | grep antreav1alpha1.crd.antrea.io Local Truev1alpha1.crd.antrea.tanzu.vmware.com Local Truev1alpha1.stats.antrea.io kube-system/antrea False (FailedDiscoveryCheck)v1alpha2.crd.antrea.io Local Truev1alpha3.crd.antrea.io Local Truev1beta1.crd.antrea.io Local Truev1beta1.system.antrea.io kube-system/antrea False (FailedDiscoveryCheck)v1beta2.controlplane.antrea.io kube-system/antrea False (FailedDiscoveryCheck)
kubectl describe app -n vmware-system-tkg <antrea app>
conditions: - message: 'Deploying: Error (see .status.usefulErrorMessage for details)' status: "True" type: ReconcileFailed
kapp: Error: Timed out waiting after 30s for resources: - apiservice/v1alpha1.stats.antrea.io (apiregistration.k8s.io/v1) cluster - apiservice/v1beta2.controlplane.antrea.io (apiregistration.k8s.io/v1) cluster - apiservice/v1beta1.system.antrea.io (apiregistration.k8s.io/v1) cluster
Namespace Name Kind Age Op Op st. Wait to Rs Ri (cluster) v1alpha1.stats.antrea.io APIService 1y - - reconcile ongoing Condition Available is not True (False) ^ v1beta1.system.antrea.io APIService 1y - - reconcile ongoing Condition Available is not True (False) ^ v1beta2.controlplane.antrea.io APIService 1y - - reconcile ongoing Condition Available is not True (False)
VMware vSphere Kubernetes Service
The connection configured from the kube-apiserver to the Antrea service requires correction.
kube-apiserver pods in the workload cluster:kubectl get pods -n kube-system | grep "kube-apiserver"kubectl delete pod -n kube-system <kube-apiserver pod name>kubectl get ds,pkgi,app -n kube-system | grep antreaThis issue has been flagged to upstream Kubernetes (Issue 135883)