-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Setup a second ELB listener when an AWS ACM certificate is used #9761
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: rifelpet The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/hold for comment |
8440cbc
to
fb8a5d6
Compare
fb8a5d6
to
5779e0d
Compare
Looks like the Terraform provider needs to consistently sort the listeners on an ELB in order for the integration tests to not flake. |
5779e0d
to
494a7d3
Compare
/lgtm |
/lgtm |
We might need to go back to the drawing board on this one :( I finally had a chance to test it out:
|
Might be worth an AWS ticket to let them know of the use case, but that probably won't help us. |
What if also open port 8443 on host? |
Opening a second port on the instances would require we forward traffic on that port to apiserver. I suppose the apiserver health check container is performing a similar function right now so we could extend it and give it a more generic name. That will vastly increase the scope of this change though, so it'd be nice to get agreement on that prior to implementation. |
New changes are detected. LGTM label has been removed. |
d2c2d24
to
5de4b44
Compare
5de4b44
to
5dc1dc2
Compare
a463aae
to
cbbd9aa
Compare
Ok I tried to use a second hostPort in the kube-apiserver pod spec and pointed the second ELB listener at the second port but that didn't work because
So it seems like if we want to keep pursuing the second listener option we'd need to have something listening on a second instance port (hijacking the healthcheck container is sounding better and better...) Beyond that, I did notice when upgrading an existing cluster, we'll need to remind users not to use |
I wonder if NLBs don't have the duplicate instancePort limitation that ELBs do. We have an open PR to add NLB support, maybe it's worth focusing on getting that merged for 1.19. That would be much more elegant than our other proposals. I'll test an NLB tomorrow unless someone else gets a chance first. |
One note on NLBs, in case you consider their use for from the control plane components as well: They only support hairpin connections from EC2 instances registered as targets by their IP address, and not by their instance ID. That precludes registering the instances automatically by virtue of their management by an ASG, as that registration method registers them by instance ID. Instead, you have register and deregister the EC2 instances when they boot or shut down (such as via systemd units), but of course it's possible for the machines to die without the deregistration procedure running. A controller running elsewhere would be more resilient. though more complicated. |
cbbd9aa
to
494a7d3
Compare
494a7d3
to
f6c2ee9
Compare
@rifelpet: The following tests failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. 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 understand the commands that are listed here. |
Superseded by #10157 |
@rifelpet: PR needs rebase. 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. |
@rifelpet: Closed this PR. In response to this:
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. |
This is the alternative solution to #9756
When
sslCertificate
is set, the API ELB will also have a TCP listener on 8443 that will pass through the TLS session to the apiserver pods, allowing client certificate auth.When
--admin
is specified inkops update cluster
orkops export kubecfg
, the kubeconfig file will use this port and will include the cluster's CA.If anyone has a preference for port number other than 8443 I'm happy to change it.