[service] [request]: EKS Managed Node Groups should support option to specify kubelet extra arguments
- 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**
What do you want us to build?
EKS managed node group currently does not have an official method to specify kubelet extra arguments. There are options to "hack" it via userdata of the launch template but that is not in official EKS guides. Ideally, there should be an API based method.
**Which service(s) is this request for?**
EKS
**Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?**
Many EKS workloads require controlling kubelet arguments such as CPU/mem reservation or enabling Static CPU Manager. Without it available via official EKS APIs, users must implement it via special user-data scripts which can collide with official EKS bootstrapping scripts.
Workloads that are sensitive to performance (e.g. Telco CNFs) have a need to ensure CPUs reserved for worker node operations are separate from the CPUs used for workloads. This can be achieved by passing in kubelet arguments. If using self-managed node groups, this is supported by CFN templates via parameter BootstrapArguments. Without this option, performance sensitive workloads cannot be deployed on EKS managed worker nodes.
The userdata workaround mentioned above carries some risk since it depends on editing bootstrap.sh or kubelet.service files at boot-up time of the worker. The editing scripts may break from release to release.
**Are you currently working around this issue?**
Modified the launch template user-data.
**Additional context**
Anything else we should know?
**Attachments**
If you think you might have additional information that you'd like to include via an attachment, please do - we'll take a look. (Remember to remove any personally-identifiable information.)
Contributor guide
Research direction
This request concerns EKS managed node groups and kubelet extra arguments, with the current workaround using launch-template user data and bootstrap.sh or kubelet.service edits. Start by reviewing the EKS managed node group API and official documentation, then compare the self-managed CloudFormation BootstrapArguments option. Done means an official supported way to provide these arguments without editing bootstrapping scripts.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, kubernetes
- Domain
- cloud, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100