cloud-provider-aws
cloud-provider-aws copied to clipboard
Dual-Stack support for NLB
What would you like to be added: Support for dual-stack NLB LoadBalancer services. Already asked for in https://github.com/kubernetes/cloud-provider-aws/issues/243 before, but it seems not implemented.
Why is this needed:
IPv4/IPv6 dual-stack feature is stable as of k8s 1.23. NLBs should be deployed with dual-stack / ipv6 enabled if indicated in spec.ipFamilyPolicy
& spec.ipFamilies
.
/kind feature
@rastislavs: This issue is currently awaiting triage.
If cloud-provider-aws contributors determine this is a relevant issue, they will accept it by applying the triage/accepted
label and provide further guidance.
The triage/accepted
label can be added by org members by writing /triage accepted
in a comment.
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.
I do not believe the NLB support in CCM will be worked on further. Instead AWS load balancer controller should be used to provision such NLBs.
Actually, it looks like a very small change is needed. I am willing to contribute that if it still can be accepted.
Sure.
@rastislavs, we already support dual-stack NLB/ IPv6 clusters via the external AWS Load Balancer controller - https://github.com/kubernetes-sigs/aws-load-balancer-controller/. Is there any reason you are unable to use the external controller?
Is there any reason you are unable to use the external controller?
One of the reasons may be the complexity / missing documentation on how does the Cloud-Provider-AWS relate and deploys together with the AWS-Load-Balancer-Controller, so that the two controllers do not interfere etc. Given the existence of the https://github.com/kubernetes/cloud-provider-aws/issues/203 it seems that I am not the only one who is missing this clarification in the docs / READMEs.
My point is that if somebody is running a k8s cluster with Cloud-Provider-AWS and the existing capabilities are in general sufficient for them, then they would expect dual-stack to work as well (as it is now GA in upstream k8s). The change for adding that support is not big at all: https://github.com/kubernetes/cloud-provider-aws/pull/497
I think the confusion between LBC and CCM need to be resolved sometime soon. CCMs in general sort of requires a service controller, and if it's discouraged to use NLBs with the CCM service controller then perhaps LBC should be considered a part of CCM (at least the NLB part). And the CCM instructions should advice installing LBC or even bundle it.
This also takes care of an issue where CCM is required to provide load balancers for services that have no class defined, while many users would appreciate that LBC provides the default implementation.
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.
This bot triages issues and PRs according to the following rules:
- After 90d of inactivity,
lifecycle/stale
is applied - After 30d of inactivity since
lifecycle/stale
was applied,lifecycle/rotten
is applied - After 30d of inactivity since
lifecycle/rotten
was applied, the issue is closed
You can:
- Mark this issue or PR as fresh with
/remove-lifecycle stale
- Mark this issue or PR as rotten with
/lifecycle rotten
- Close this issue or PR with
/close
- Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.
This bot triages issues and PRs according to the following rules:
- After 90d of inactivity,
lifecycle/stale
is applied - After 30d of inactivity since
lifecycle/stale
was applied,lifecycle/rotten
is applied - After 30d of inactivity since
lifecycle/rotten
was applied, the issue is closed
You can:
- Mark this issue or PR as fresh with
/remove-lifecycle rotten
- Close this issue or PR with
/close
- Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle rotten
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.
This bot triages issues according to the following rules:
- After 90d of inactivity,
lifecycle/stale
is applied - After 30d of inactivity since
lifecycle/stale
was applied,lifecycle/rotten
is applied - After 30d of inactivity since
lifecycle/rotten
was applied, the issue is closed
You can:
- Reopen this issue with
/reopen
- Mark this issue as fresh with
/remove-lifecycle rotten
- Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/close not-planned
@k8s-triage-robot: Closing this issue, marking it as "Not Planned".
In response to this:
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.
This bot triages issues according to the following rules:
- After 90d of inactivity,
lifecycle/stale
is applied- After 30d of inactivity since
lifecycle/stale
was applied,lifecycle/rotten
is applied- After 30d of inactivity since
lifecycle/rotten
was applied, the issue is closedYou can:
- Reopen this issue with
/reopen
- Mark this issue as fresh with
/remove-lifecycle rotten
- Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/close not-planned
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.
I think the confusion between LBC and CCM need to be resolved sometime soon. CCMs in general sort of requires a service controller, and if it's discouraged to use NLBs with the CCM service controller then perhaps LBC should be considered a part of CCM (at least the NLB part). And the CCM instructions should advice installing LBC or even bundle it.
I was likewise confused by this today. Should LBC be integrated into CCM? The LBC does both NLBs (for Services) and ALBs (for Ingresses), but many users will already be running a different Ingress controller, and just need the load balancer created.
I'd personally suggest the NLB functionality is moved out of the LBC into the CCM.
As an aside, there is also an ACK controller that creates/manages ELBs. AWS have far too many ways to manage the same resources.