-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
node-local-dns crash looping on masters '169.254.20.10:8080: bind: address already in use' #9245
Comments
Have seen this on 2 different clusters created with KOPS 1.18.0-beta.1. Will test with 1.18.0-alpha.3 tomorrow. |
Hi @fred-vogt thanks for the report. This does seem like an issue we'll need to fix for Kops 1.18.0. This is the listening port we'll need to change in order to not conflict with kube-apiserver: kops/upup/models/cloudup/resources/addons/nodelocaldns.addons.k8s.io/k8s-1.12.yaml.template Line 58 in d18c88a
@mazzy89 since you implemented it, do you have any concerns with that port being updated? We'd probably pick a new port and add it here |
Thank you @rifelpet to ping me on this. I brought in that port from the upstream node local dns cache manifest. I need to check this out and verify if any changes to that port could have any impact on the component itself. Going to check and i'll reply in a while |
The kube-apiserver-healthcheck sidecar that this conflicts with was added after 1.18.0-alpha3. For reference, node-local-dns isn't in 1.17 branch, so this doesn't affect that branch despite kube-apiserver-healthcheck being backported there. |
/milestone v1.18 |
@johngmyers: You must be a member of the kubernetes/kops-maintainers GitHub team to set the milestone. If you believe you should be able to issue the /milestone command, please contact your Kops Maintainers and have them propose you as an additional delegate for this responsibility. 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. |
Both node-local-dns and kube-apiserver-healthcheck should be using ports registered in pkg/wellknownports/wellknownports.go if they're exposing on host network. Probably neither one should be using port 8080 on host network. |
I've checked and tried to find out how node local dns uses the port 8080. It is configured in the upstream manifest https://github.com/kubernetes/kubernetes/blob/a4e7db7cc3505bada9f98f6f0f7f21306cf217e2/cluster/addons/dns/nodelocaldns/nodelocaldns.yaml#L70 for health check purpouse. I haven't found at the moment any reference in the upstream code base though. |
I'm guessing the health check port is only used by the livenessProbe so that would be the only other reference we would need to update when changing the port. Perhaps the docs can be updated to mention the health and prometheus ports in case users want to consume them. |
This problem has also occurred for me using the newly released Kops |
This problem is not happening for kops 1.17.0-beta.2. |
@jim-barber-he I don't see nodelocaldns in the 1.17 branch. It appears to have been added to 1.18 in #8780 and I see no evidence of backporting. So how is it you are getting nodelocaldns with kops 1.17.0? |
@fred-vogt I'm aware that kube-apiserver-healthcheck is in 1.17. But nodelocaldns is not, so there's no problem. |
Oops. Removed that comment. |
It's still possible to install nodelocaldns into your cluster external to kops and have it all work with a few tweaks to their config file (apart for the find and replace on their placeholder vars we also added a tolerance to have it start on the master nodes too). We've been doing that since Kube 1.15 for a healthier cluster; it's an essential part of our Kubernetes infrastructure. |
If you're installing something into a cluster external to kops you can adjust the port it uses to not conflict. |
I had a look at the manifest for nodelocaldns. It is sort of doing the right thing. It binds to 8080 on the IP you specify as |
Fixed by #9373 |
@johngmyers: Closing this issue. 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. |
node-local-dns
crash looping onmasters
- new in1.18.0-beta.1
:Health port is conflict with API server health check sidecar.
1.18.0-beta.1
1. What
kops
version are you running? The commandkops version
, will displaythis information.
2. What Kubernetes version are you running?
kubectl version
will print theversion if a cluster is running or provide the Kubernetes version specified as
a
kops
flag.3. What cloud provider are you using?
AWS
4. What commands did you run? What is the simplest way to reproduce this issue?
New cluster on ubuntu 18.04.
5. What happened after the commands executed?
6. What did you expect to happen?
7. Please provide your cluster manifest. Execute
kops get --name my.example.com -o yaml
to display your cluster manifest.You may want to remove your cluster name and other sensitive information.
+ExperimentalClusterDNS
8. Please run the commands with most verbose logging by adding the
-v 10
flag.Paste the logs into this report, or in a gist and provide the gist link here.
9. Anything else do we need to know?
Have only seen this with
1.18.0-beta.1
.KOPS Validate
OS
Listening sockets
Interfaces
node-local-dns logs
The text was updated successfully, but these errors were encountered: