Install the environment console
Before you begin, follow Install AutoMQ on Azure to install the AutoMQ console with Docker and complete System Initialization. To prepare the console, AKS, and example resources with Terraform, see the AutoMQ Azure Terraform example.Prepare the AKS cluster and node pool
Step 1: Create the AKS cluster
Create a Standard AKS cluster. The AutoMQ console must access the AKS Kubernetes API to create and manage an Instance.Console UAMI access to AKS
The console should access AKS with its own identity instead of a shared static administrator credential. We recommend enabling Microsoft Entra integration:- The console authenticates as the Console UAMI with Microsoft Entra tokens.
- The console uses a
clusterUserkubeconfig, so Kubernetes requests carry the console identity.
clusterAdmin kubeconfig obtained through the Azure API. Grant the Console UAMI Azure Kubernetes Service Cluster Admin Role to obtain it.
Console Kubernetes permissions
After authentication is configured, choose where to manage the console’s Kubernetes permissions. We recommend managing them centrally in Azure IAM instead of maintaining a separate Kubernetes RBAC configuration. With Microsoft Entra integration enabled, we recommend enabling Azure RBAC for Kubernetes Authorization:- Grant the Console UAMI
Azure Kubernetes Service RBAC Cluster Adminat the target AKS cluster scope. - Grant the AKS access permission generated on the System Initialization page. It must include
Microsoft.ContainerService/managedClusters/listClusterUserCredential/action, which lets the console obtain theclusterUserkubeconfig. This permission does not grant Kubernetes management permissions by itself.
ClusterRoleBinding for the Console UAMI principal. Use the Azure authorization commands generated on that page.
Data plane access to Azure resources
AutoMQ data plane Pods use Azure Workload Identity to access Azure resources. To use this authentication mechanism, enable both the AKS OIDC issuer and Workload Identity features.Network and egress
The console must reach the cluster, and the nodes must pull images and call Azure APIs. AutoMQ service ports must also be reachable:- Use Azure CNI Node Subnet. When creating the AKS cluster, explicitly set
--network-plugin azureand don’t set--network-plugin-mode overlay. Make sure the console can access Pod IPs directly from outside the AKS cluster. - Make sure the console can reach the AKS API Server and AutoMQ service ports.
- Make sure nodes can reach container registries, Azure APIs, and external services required by AutoMQ.
Availability zones for production
Place nodes across three Availability Zones in production to reduce the impact of a zone failure.Step 2: Check network access paths
Before creating an Instance, check the NSGs, routes, firewalls, and DNS configuration for these paths:- The AutoMQ console can reach the AKS API Server.
- The AutoMQ console can reach the AutoMQ data plane Pod or Service ports.
- Kafka client networks can reach the AutoMQ service ports required by your applications.
- AKS nodes can reach container registries, Azure APIs, and external services required by AutoMQ. Nodes without Public IPs need a NAT Gateway or another egress path.
- For a private AKS API Server, the console VM must have connectivity to the AKS VNet and resolve the AKS private DNS name.
- For a public AKS API Server with authorized IP ranges enabled, those ranges must include the console egress address.
networkPlugin is azure and networkPluginMode isn’t overlay.
We recommend at least 512 IP addresses in the AKS Subnet. Common AutoMQ service ports include 8083, 9090, 9092, 9093, 9102, 9103, 9112, and 9113. The console Subnet is a required source. Add Kafka client CIDR ranges only when those clients need application access. Use NSGs or equivalent network policies to restrict sources to the required CIDR ranges. Allow node DNS resolution and outbound TCP 443.
Step 3: Prepare the dedicated AutoMQ node pool
Create a separate User node pool for AutoMQ Brokers and configure:- A VM size and node count based on Overview.
- Three Availability Zones and Cluster Autoscaler for production.
- Taint:
dedicated=automq:NoSchedule.
Step 4: Prepare the AutoMQ workload identity
AutoMQ data plane Pods use Azure Workload Identity to access Blob Storage, Private DNS, and Managed Disks. Select one of these modes when creating an Instance:
For Customer-Provided mode, enter the workload UAMI full ARM resource ID, not its client ID or principal ID. The KSA
azure.workload.identity/client-id annotation uses the UAMI client ID. The console checks the identity configuration, but you must still ensure that the identity can access both the Ops Bucket and Data Bucket Blob containers, the Private DNS Zone, and the Managed Disk resources.
Create an AutoMQ Instance
Sign in to the AutoMQ console, create an Instance, select Kubernetes deployment, and configure:
Do not replace an ARM ID with a display name, Resource Group/name tuple, UAMI client ID, or principal ID. The current scope supports AKS in Azure Public Cloud and resources in the same tenant and Subscription. Resources can be in different Resource Groups. Azure IaaS, cross-subscription resources, cross-tenant resources, and Public DNS lifecycle are not supported.
- AKS cluster: Select the target cluster. APIs and automation use its full ARM ID:
/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ContainerService/managedClusters/<aks-name>. - Node pool: Enter the node pool short name within the selected AKS cluster.
- Virtual Network: Enter the selected VNet full ARM ID. Kubernetes deployment does not use a Subnet as a workload placement input.
- Data bucket: Select a Managed resource or enter a Customer-Provided Blob container. An Azure Bucket ID uses
<storage-account>:<container>. - Private DNS Zone: Select a Managed resource or enter the full ARM ID of a Customer-Provided Private DNS Zone. A Customer-Provided Zone must already have a resolution-only VNet Link to the selected VNet.
- Instance identity: Select Managed identity or enter the full ARM ID of a Customer-Provided UAMI.
- Namespace and ServiceAccount: For Customer-Provided identity, enter the values represented by the Federated Identity Credential subject.
- Preview the configuration and complete creation.
Appendix: Deploy a Placeholder Deployment (optional)
To reserve failover capacity in the AutoMQ node pool, deploy low-priority Placeholder Pods. A Broker can preempt this capacity during failover.-
Download and create the low-priority PriorityClass:
-
Download the AKS Placeholder manifest:
-
Update
automq-aks-placeholder.yamlfor the actual node pool:metadata.name: Use a recognizable name.replicas: Set the number of nodes to reserve. For a multi-zone deployment, evaluate reserving one Pod per zone.affinity.nodeAffinity: Match the dedicated AutoMQ node pool with the native AKS labelkubernetes.azure.com/agentpool=<node-pool-name>.resources: Setlimitsbased on node size and setrequestsslightly below the node allocatable resources.
-
Deploy the manifest and confirm that the Pods run on the expected node pool: