Throughout the product’s full lifecycle, AutoMQ will maintain deep and continuous integration with Amazon Elastic Kubernetes Service (EKS) and EKS Anywhere (EKS-A).To uphold this commitment, we ensure:Continuous version compatibility: We guarantee that each new version of AutoMQ will be compatible with both current and future versions of EKS and EKS-A. Additionally, we proactively adapt to updates on the AWS platform, offering users a seamless, forward-compatible experience.Timely response and resolution: We have established a clear response mechanism to quickly identify and resolve any configuration, security, and non-security issues reported by customers or AWS.
Install the Environment Console
Refer to Overview▸, AutoMQ supports deployment on EKS clusters. In EKS deployment mode, you must first install the AutoMQ console and then use the console interface to operate EKS, deploying the cluster onto EKS. For instructions on installing the console, please refer to Prepare AWS BYOC Environment▸.Prepare EKS Cluster and Necessary Node Pools and Other Resources
If you expect to run the AutoMQ cluster on Kubernetes, you need to prepare an EKS cluster for AutoMQ to use. If you expect to deploy the AutoMQ cluster on EC2, you do not need to prepare an EKS cluster.Step 1: Create the Required IAM Roles
Before creating the EKS cluster and node groups, you need to create a dedicated IAM Role. This Role is used for the EKS cluster’s own service authorization.- Access the IAM console and click Create Role.
- Trusted entity type: Select AWS Service.
- Service Use case: Select EKS-Cluster.
- Click Next, enter a custom role name, and create the IAM Role.
Step 2: Create EKS Cluster
- Log in to the AWS EKS console, click Create cluster, and select the custom creation mode.
- Configure basic cluster information:
- Bind the EKS cluster IAM Role created in the previous step.
- Select the Kubernetes version, choose version 1.32.
The AutoMQ cluster needs to access the EC2 Node’s Metadata service, which by default requires an AL2 (Amazon Linux 2) version node pool to work properly. Starting from EKS version 1.33, AWS no longer supports AL2 node pools by default, so it is recommended to choose an EKS cluster of version 1.32.
-
Configure VPC network:
- Select the VPC you have prepared for AutoMQ; this VPC should be consistent with the VPC where the application is located.
- Select the private subnets for deploying the cluster.
- It is recommended to select the default security group for the VPC.
- Keep other default configurations and create the EKS cluster.
-
Authorize console access.
To allow the AutoMQ console to manage the EKS cluster, you need to authorize it.
- Go to the Access menu of the EKS cluster and click Create Access Entry.
- Select the IAM Role used by the AutoMQ console (usually created when installing the console).
- Set Type to Standard.
- Click Next, and on the Add access policy page, select the AmazonEKSClusterAdminPolicy policy.
- Select Cluster for the Scope and click Add.
- Complete the creation.
-
Set security group rules to allow access to Pods and the EKS API Server service from outside the EKS cluster.
The AutoMQ console component needs to call the EKS cluster’s API Server, so you need to ensure that the security group where the console is located can access the EKS cluster’s API Server port (port 443). In addition, the AutoMQ cluster’s Broker needs to expose service ports. If components outside the cluster (including the console and Producer/Consumer applications) need to access AutoMQ, you need to add inbound rules to the EKS cluster’s security group.
- Ports:
443,9090,9092,9102,9122,9112,8083. - Source: Set according to the CIDR range where your application is located. At a minimum, you need to ensure that the EC2 where the AutoMQ console is located can access it.
- Ports:
Step 3: Create EKS Node Groups
You need to create at least two types of node groups for the EKS cluster: a public node group for running system components, and a dedicated node group for running AutoMQ workloads.1. Create a Public Node Group
- Go to the EKS cluster details page, click the Compute menu, and Create node group.
- IAM Role: Select the node group IAM Role you created in Step 1.
- AMI Type: Select Amazon Linux 2.
- Instance Configuration: It is recommended to select
t3.mediumor equivalent instances, with a quantity of 2-3. - Subnet: Select all private subnets required for EKS deployment.
- Complete the node group creation.
2. Create a Dedicated AutoMQ Node Group
- Go to the Compute menu again and Create node group.
- IAM Role: Select the node group IAM Role you created in Step 1.
- Taints: Configure a taint for this node group to ensure that only AutoMQ’s Pods can be scheduled on it. Please use the following configuration:
- Key:
dedicated. - Value:
automq. - Effect:
NO_SCHEDULE.
- Key:
- Instance Configuration: Please refer to AutoMQ’s instance recommendations to select the instance type.
- AMI Type: Select Amazon Linux 2.
- Subnet: Depending on your AutoMQ cluster plan, select private subnets in one or three availability zones.
- Quantity: It is recommended to start with 3 nodes and reasonably evaluate the maximum number of nodes based on the business scale.
- Complete the node group creation.
3. Create Kafka Connector Node Group (Optional)
If you plan to use the managed Kafka Connect service provided by AutoMQ, you also need to prepare node resources for running the Connector. It is recommended to create a node pool by referring to the method for creating a public node pool, or directly scale up the public node pool to ensure sufficient computing resources.Step 4: Initialize Local Tools and Configure EKS Plugins
The newly created EKS cluster needs to have some necessary system plugins installed to work with AutoMQ.1. Initialize Local Tools
- Install and configure AWS CLI, kubectl, and Helm in your local environment.
- Execute the following command to generate the KubeConfig configuration file so that
kubectlcan connect to your EKS cluster.
2. Configure EKS AutoScaler (Optional)
To enable on-demand auto-scaling of EKS node groups, you need to configure the Cluster Autoscaler. If you do not need to use auto-scaling, you can skip this step.- Download the AutoScaler configuration file from the download link.
- Modify the configuration file, replacing
<YOUR CLUSTER NAME>with your EKS cluster name. - Execute the installation command:
3. Create IAM OIDC Provider
The AutoMQ data plane Pod needs to access cloud resources such as S3 and needs to assume an IAM Role to obtain temporary access authorization. In EKS, for a Pod to be able to assume an IAM Role, the EKS cluster must first be registered as a trusted identity provider with IAM. In addition, installing the EBS CSI plugin and the Load Balancer Controller plugin also requires an OIDC Provider. You can refer to the official AWS documentation “Create an IAM OIDC provider for your cluster” to create an OIDC Identity Provider for your EKS cluster in the IAM console.4. Configure Amazon EBS CSI Driver
The EKS cluster needs this plugin to manage storage volumes.- Refer to the official AWS documentation “Amazon EBS CSI driver” to create a dedicated IAM Role for the CSI Driver after creating the OIDC Provider above.
- After completing the IAM Role and Trust Policy configuration, go to the Add-ons tab of the EKS cluster console, add the Amazon EBS CSI Driver, and select the IAM Role created in the previous step.
5. Install AWS Load Balancer Controller
This plugin is used to manage Load Balancers and provide an external access entry for AutoMQ to the EKS cluster. To install the Load Balancer Controller, you can refer to the official documentation.- Execute the following command to generate the IAM Policy.
- Create an IAM Role and attach the Policy created in the previous step to this Role.
- Add the Helm repository and install the CRD:
- Execute the installation command, paying attention to replace
<eks-cluster-id>with your cluster name,<Your RegionID>with your region ID, and<Your VPCID>with your VPC ID:
Create an AutoMQ Instance, Select Deploy to Kubernetes
Log in to the AutoMQ console, create an instance, select Kubernetes as the deployment type, and configure the following information as required.- Deployment Type: Select Kubernetes.
- Kubernetes Cluster: Fill in the cluster name of the EKS cluster.
- Node Pool: Fill in the name of the node pool used to deploy AutoMQ. Note that the instance type specifications and quantity of the node pool must meet the environmental requirements▸.
- Namespace (only required when managing IAM permissions yourself): Fill in the namespace used to deploy AutoMQ.
- ServiceAccount (only required when managing IAM permissions yourself): Fill in the ServiceAccount used to deploy AutoMQ. Note that this ServiceAccount must be associated with the corresponding IAM Role (via EKS OIDC Provider or AWS EKS IRSA).
- Preview the configuration information and complete the creation.