AWS Multi-ENI Controller Quick Start Guide

Get up and running with AWS Multi-ENI Controller in minutes

Prerequisites

Note: The AWS Multi-ENI Controller requires IAM permissions to create, attach, detach, and delete ENIs. Make sure your nodes have the appropriate IAM role with these permissions.

Installation Steps

Step 1: Install with Helm (Recommended)

The easiest way to install the AWS Multi-ENI Controller is using Helm:

# Install the latest version
helm install aws-multi-eni oci://ghcr.io/johnlam90/charts/aws-multi-eni-controller --version 1.3.0 \
  --namespace eni-controller-system --create-namespace

# With custom values
helm install aws-multi-eni oci://ghcr.io/johnlam90/charts/aws-multi-eni-controller --version 1.3.0 \
  --namespace eni-controller-system --create-namespace \
  --set awsRegion=us-east-1 \
  --set nodeSelector.ng=multi-eni
Important: Always specify the --namespace eni-controller-system flag and the --create-namespace flag when installing the chart to ensure all resources are created in the correct namespace.

Step 2: Create a NodeENI Resource

Create a YAML file named nodeeni.yaml with the following content:

apiVersion: networking.k8s.aws/v1alpha1
kind: NodeENI
metadata:
  name: multus-eni-config
spec:
  nodeSelector:
    ng: multi-eni
  subnetID: subnet-0f59b4f14737be9ad  # Use your subnet ID
  securityGroupIDs:
  - sg-05da196f3314d4af8  # Use your security group ID
  deviceIndex: 2
  mtu: 9001  # Optional: Set MTU for jumbo frames
  deleteOnTermination: true
  description: "Multus ENI for secondary network interfaces"

Apply the NodeENI resource to your cluster:

kubectl apply -f nodeeni.yaml

Step 3: Label Your Nodes

Label the nodes where you want to attach ENIs:

kubectl label node your-node-name ng=multi-eni

Replace your-node-name with the actual name of your node. You can get a list of your nodes with:

kubectl get nodes

Step 4: Verify ENI Creation

Check the status of your NodeENI resource:

kubectl get nodeeni multus-eni-config -o yaml

You should see the ENI attachments in the status section of the output. You can also verify in the AWS Console that the ENIs have been created and attached to your EC2 instances.

Next Steps

Now that you have the AWS Multi-ENI Controller up and running, you can:

For more detailed information, check out the Documentation and Architecture pages.