Skip to main content
Common issues during In-VPC deployment and operation on Azure, with the diagnostic commands and fixes for each.

Metadata service pods not appearing after deploy

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):

Metadata service pods stuck in Pending

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

When to contact e6data support

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