Common issues during In-VPC deployment and operation on Azure, with the diagnostic commands and fixes for each.
Symptom: You applied the NamespaceConfig, but mds-schema-* and mds-storage-* pods don’t appear after a few minutes.
The operator waits 60 seconds after the NamespaceConfig is created before provisioning metadata services. If pods haven’t appeared after 3–4 minutes total:
If you see unknown field "status.mdsAutoCreation", the CRDs need updating - re-apply them (Part 2 Step 2.3):
Load balancer not getting an external IP
Symptom: The LoadBalancer service stays in Pending and never gets an external IP.
The AKS cluster identity needs Network Contributor on the VNet to provision load balancers (this is granted in Part 1, Step 4). If the LB stays pending, confirm the assignment exists, then create it if missing:
Role assignment can take a few minutes to propagate. With the public default, the assigned EXTERNAL-IP is a public address; if you set azure-load-balancer-internal: "true", it is a private 10.x VNet address instead.
Engine service account missing Workload Identity annotation
Symptom: Engine pods can’t authenticate to Azure storage; logs show AccessDenied or NoCredentialsError.
The operator may recreate the engine service account during reconciliation without the Workload Identity annotation. Re-annotate and restart:
Image pull errors
Symptom: Pods stuck in ImagePullBackOff or ErrImagePull.
Diagnose by which registry-access option you chose:
-
Option A (token): verify the pull secret exists and is the right type:
If missing or wrong, recreate it - see Configure registry, Kubernetes, and networking.
-
Option B (Managed Identity): confirm with e6data that the
AcrPull role assignment is applied and propagated (up to 5 minutes). Share your kubelet identity object ID with e6data support if pulls still fail.
Workspace namespace stuck in Terminating
Look for NamespaceFinalizersRemaining. List remaining resources, then clear the stuck finalizer (usually an e6data custom resource):
The namespace finishes terminating in 30–60 seconds after finalizers clear.
Operator pod crash-looping
Provide your AKS cluster name, resource group, and region; workspace and tenant name; the output of kubectl get pods -n <WORKSPACE_NAME> and kubectl get pods -n e6operator; relevant log excerpts; and what you’ve already tried. For production incidents, use the support channel in your e6data contract.
See also
Last modified on September 29, 2026