aws / aws/containers-roadmap

[EKS [request]: CNI custom networking to support more than one subnet.

Open
#1,709 6 comments 83 reactions 0 assignees View on GitHub
EKS EKS Networking Proposed
Dominant language
Shell
Stars
5.4k
Forks
334
PR merge metrics
No merged PRs in 30d

Description

### Community Note

* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request
* Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
* If you are interested in working on this issue or have submitted a pull request, please leave a comment

**Tell us about your request**
Customers using [VPC CNI custom networking](https://docs.aws.amazon.com/eks/latest/userguide/cni-custom-network.html) can create ENIConfig with **one** subnet per AZ. This request is to allow more than one subnet per AZ for ENIConfig. Referring to the original requested from [amazon-vpc-cni-k8s](https://github.com/aws/amazon-vpc-cni-k8s/issues/1207) for additional inputs.

With this feature, customers can start with a smaller subnet/CIDR block first with ENIConfig and easily expand by adding more subnets in the future to have more IPs available for pods when needed.

Example scenario:
The expectation is that start with a single subnet for pod IPs (e.g., CUST_SNET1=100.64.0.0/22 which allows ~1000 pods for a subnet within a single AZ1). Run cluster for a while. Let's suppose, it runs out of pod IP capacity one day. Add another subnet (e.g., CUST_SNET2=100.65.0.0/22 for additional ~1000 pods to the same AZ1). Update ENIConfig for the AZ1 with two subnets now. Same ENIConfig, then pick up IPs (or delegated prefix) from these two subnets. Please note that second CIDR for the subnet CUST_SNET2=100.65.0.0/22 is not allocated to the ENIConfig on day-1, rather it will be added later if needed. It allows continuing expansion by adding more CIDR/subnets as needed without developing a complex logic of multiple ENIConfigs per subnets and automating individual node annotations as the new node join the EKS cluster.

This feature would also help when it is hard for customers to allocate a large contiguous CIDR block vs adding multiple smaller non-contiguous CIDR blocks to the ENIConfig.

```
cat <

Contributor guide

Open the contributing guide

Research direction

Start with the linked EKS CNI custom networking documentation and the ENIConfig example in this issue, then review the related amazon-vpc-cni-k8s request for implementation context. Done means an ENIConfig can accept multiple subnets in one availability zone and use them for pod IP allocation without requiring multiple ENIConfigs or node annotations.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, kubernetes
Domain
cloud, infrastructure, networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.