AWS VPC CNI 1.18: Automatic Subnet Discovery

Table of Contents
Introduction
On April 15, 2024, AWS released VPC CNI Plugin version 1.18, introducing automatic subnet discovery—a significant simplification for EKS network configuration. This release enables VPC CNI to automatically discover and use subnets within defined ranges, reducing manual configuration and making it easier to scale clusters across multiple availability zones.
Subnet management in EKS has traditionally required manual configuration: you specify which subnets to use, monitor IP availability, and manually add subnets as clusters grow. VPC CNI 1.18 automates this process, making subnet management more dynamic and less error-prone.
Key Features
- Automatic Subnet Discovery: Automatically discovers and uses subnets within defined ranges.
- Dynamic IP Allocation: Allocates IP addresses dynamically across discovered subnets.
- Simplified Configuration: Reduces manual subnet configuration and management.
- Multi-AZ Support: Better support for multi-availability zone deployments.
Automatic Subnet Discovery
Enable automatic subnet discovery:
apiVersion: v1
kind: ConfigMap
metadata:
name: aws-vpc-cni
namespace: kube-system
data:
ENABLE_PREFIX_DELEGATION: "true"
ENABLE_SUBNET_DISCOVERY: "true"
SUBNET_DISCOVERY_TAG_KEY: "kubernetes.io/cluster/CLUSTER_NAME"
SUBNET_DISCOVERY_TAG_VALUE: "shared"
How It Works:
- Tag-Based Discovery: Discovers subnets based on Kubernetes cluster tags.
- Automatic Selection: Automatically selects subnets for pod IP allocation.
- Dynamic Updates: Updates subnet selection as subnets are added or removed.
Subnet Tagging
Tag subnets for automatic discovery:
aws ec2 create-tags \
--resources subnet-12345678 \
--tags Key=kubernetes.io/cluster/my-cluster,Value=shared
Tag Structure:
- Key:
kubernetes.io/cluster/CLUSTER_NAME - Value:
sharedorowned
Getting Started
VPC CNI 1.18 is available for EKS clusters. To upgrade:
kubectl apply -f https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/release-1.18/config/master/aws-k8s-cni.yaml
Enable automatic subnet discovery:
apiVersion: v1
kind: ConfigMap
metadata:
name: aws-vpc-cni
namespace: kube-system
data:
ENABLE_SUBNET_DISCOVERY: "true"
SUBNET_DISCOVERY_TAG_KEY: "kubernetes.io/cluster/my-cluster"
SUBNET_DISCOVERY_TAG_VALUE: "shared"
Benefits
- Simplified Operations: Less manual subnet configuration and management.
- Dynamic Scaling: Automatically adapts to subnet changes without manual intervention.
- Multi-AZ Support: Better support for multi-availability zone deployments.
- Reduced Errors: Fewer configuration errors from manual subnet management.
Use Cases
- Multi-AZ Clusters: Automatically discover and use subnets across multiple availability zones.
- Dynamic Environments: Environments where subnets are frequently added or removed.
- Large Clusters: Clusters that span multiple subnets benefit from automatic discovery.
- Simplified Operations: Teams wanting to reduce manual subnet configuration.
Comparison: Manual vs Automatic Subnet Management
| Aspect | Manual Configuration | Automatic Discovery (1.18) |
|---|---|---|
| Configuration | Manual subnet specification | Tag-based automatic discovery |
| Updates | Manual updates required | Automatic updates |
| Complexity | Higher | Lower |
| Error-Prone | More errors | Fewer errors |
| Scalability | Limited | Better |
Operational Considerations
- Subnet Tagging: Ensure subnets are properly tagged for discovery.
- Tag Management: Maintain consistent tagging across subnets.
- IP Planning: Still need to plan IP address allocation across discovered subnets.
- Monitoring: Monitor subnet discovery and IP allocation across subnets.
Common Patterns
- Multi-AZ Deployment: Use automatic discovery for subnets across multiple AZs.
- Tag-Based Organization: Organize subnets using tags for automatic discovery.
- Dynamic Scaling: Leverage automatic discovery for dynamically scaling clusters.
- Simplified Management: Reduce operational overhead with automatic subnet management.
Limitations
- Tag Requirements: Requires proper subnet tagging for discovery to work.
- IP Planning: Still need to plan IP address allocation across subnets.
- Regional Constraints: Works only in AWS regions with EKS support.
- Tag Management: Requires consistent tag management across subnets.
Looking Ahead
VPC CNI 1.18 continues the evolution toward:
- Enhanced Automation: More automated network management features.
- Better Multi-AZ Support: Improved support for multi-availability zone deployments.
- Advanced Features: Additional networking features and integrations.
- Performance Improvements: Continued optimization of subnet discovery and IP allocation.
Summary
| Aspect | Details |
|---|---|
| Release Date | April 15, 2024 |
| Key Innovations | Automatic subnet discovery, dynamic IP allocation, simplified configuration |
| Significance | Simplified subnet management and improved support for multi-AZ and dynamic environments |
AWS VPC CNI 1.18 introduced automatic subnet discovery, significantly simplifying EKS network configuration. By automatically discovering and using subnets based on tags, it reduced manual configuration overhead and made it easier to scale clusters across multiple availability zones—a major step forward in operational simplicity.