aws / aws/containers-roadmap

[VPC CNI] [EKS]: Provide current IP count for kubernetes scheduling

Open
#2,189 0 comments 26 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**
Provide the kube api with the current number of pooled IPs so that these resources can be used for scheduling decisions. There are a number of issues that seem related to this (https://github.com/aws/amazon-vpc-cni-k8s/issues/1160 and https://github.com/aws/amazon-vpc-cni-k8s/issues/26)

Using the ["Device Plugins"](https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/) feature, the aws cni (or a sidecar) can provide to the kubelet the number of IP addresses. The kubelet will then report these resources back to the kube api which the scheduler can then use for scheduling decisions.

This is a clone of https://github.com/aws/amazon-vpc-cni-k8s/issues/2638

**Which service(s) is this request for?**
AWS VPC CNI

**Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?**
Provider available IP addresses as a resource the kube scheduler can use to make scheduling decisions.

**Are you currently working around this issue?**
Currently it is possible to schedule a pod on a node with available CPU or memory resources, but NO IPs available. This leads to a pod that is stuck in "ContainerCreating". If the number of allocatable IP addresses were available from the node/kubelet, then the scheduler could use this information to place a pod somewhere else. This assumes the pod also correctly requests the IP address resource in its pod spec.

Contributor guide

Open the contributing guide

Research direction

Start by reading the related issues #1160, #26, and the cloned issue #2638, then review Kubernetes Device Plugins documentation and the AWS VPC CNI context in this request. Define how pooled IP capacity would be exposed through the kubelet and API for scheduler decisions, with completion shown by IP-aware placement avoiding pods that become stuck in ContainerCreating.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.