-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
NodePort on new node doesn't work without reboot #2737
Comments
I've never heard of a problem like this before so I don't know of anything immediately to check out. Is NetworkManager running on your nodes? I know there have been problems before with it but none that I remember with this type of behavior. Please check the kubelet (for CNI errors) and calico-node logs before rebooting a new node to see if there are any problems setting up the networking for pods (or anything odd). It may also be useful to check |
I'll work on getting the iptables outputs. Unfortunately behind an air gap for this cluster. The behavior seems similar to this: #875. We are running docker version 18.06. The suggested solution from this ticket works as well. If I run It looks like the issue was believed to be fixed by kubernetes/kubernetes#40182 which should be in k8s 1.12.3. To answer your questions:
I'll work on providing iptables output and diffs. |
So I was able to reproduce the problem with k8s 1.15.0. Here is the iptables output when the nodeport is being blocked. In this case we have a nexus server with a node port of 30100 and when this new node joined curl hung until iptables -P FORWARD ACCEPT was run. Then the node works as expected. This was run with a -c. |
@cchanley2003 are you passing |
I am not passing cluster-cidr to my kube-proxy. I'll look at kubeadm setup and see what I need to do to have that added into the default kubeadm installation. Just to be clear cluster-cidr should match the calico cidr range correct? |
Yes that is correct. |
Going to close this issue. Believe that the problems were related to not handing kubeadm the cluster-cidr range. Thanks for the help. |
Running k8s 1.12.3 and Calico Typha 3.8.0. NodePorts don't seem to work when a new node joins the cluster. When I curl an exposed node port that fronts a simple http server the call hangs. If I reboot that node, the node port works as expected. This is running Red Hat 7.6. The same steps with a cluster using weave's CNI doesn't have this behavior.
Expected Behavior
Expected behavior is that when a new node is marked Ready then NodePort services would work without having to reboot the machine.
Current Behavior
When a new node joins the cluster the node port doesn't seem to forward the request. The port is listening but calls to the port hang indefinitely. Rebooting the node fixes the erroneous behavior. Internal (pod to pod) cluster communication appears to work fine. Because this works fine if I stand up a cluster with everything the same but a different CNI I don't believe kube proxy is at fault. I confirmed that iptables is empty (other than the standard docker entries) before a node joins.
Possible Solution
None at this time
Steps to Reproduce (for bugs)
Any additional debugging steps would be appreciated?
Right now my steps are:
Your Environment
The text was updated successfully, but these errors were encountered: