kube-proxy 报告错误的 ip 地址
kube-proxy reports wrong ip address
在我的 kubernetes 集群中,每个节点都是一个带有两个 NIC 的 virtualbox vm,eth0 用于 NAT,eth1 用于主机本地通信。
kubectl get pod --all-namespaces -o wide
显示
我们可以看到 k8s-3 和 k8s-4 报告了正确的 IP,而 k8s-2 没有。
我尝试在 k8s-2
的 kube-proxy.yaml
中添加 --bind-address=192.168.99.202
,但它不起作用。
有人有什么建议吗?
在您的 kubelet 中使用 --hostname-override 并将其设置为 ip。它会将您的节点名称变成您的 ip,但它会有正确的地址。我在我的测试集群(vagrant 和 virtualbox)上遇到了这个问题,我不得不做出改变。我还在我的 kube-proxy 中设置了主机名覆盖。我正在对我的 kube-proxy 问题进行故障排除,有一次我进行了更改,但这并不是最终解决问题的方法,所以我不确定是否真的需要。
如果您的 运行 flannel,请不要忘记确保其使用正确的 --iface,因为它喜欢使用 eth0。
https://github.com/kubernetes/kubernetes/issues/44702
通过将 --node-ip=
传递给 kubelet 解决了问题。
在我的 kubernetes 集群中,每个节点都是一个带有两个 NIC 的 virtualbox vm,eth0 用于 NAT,eth1 用于主机本地通信。
kubectl get pod --all-namespaces -o wide
显示
我们可以看到 k8s-3 和 k8s-4 报告了正确的 IP,而 k8s-2 没有。
我尝试在 k8s-2
的 kube-proxy.yaml
中添加 --bind-address=192.168.99.202
,但它不起作用。
有人有什么建议吗?
在您的 kubelet 中使用 --hostname-override 并将其设置为 ip。它会将您的节点名称变成您的 ip,但它会有正确的地址。我在我的测试集群(vagrant 和 virtualbox)上遇到了这个问题,我不得不做出改变。我还在我的 kube-proxy 中设置了主机名覆盖。我正在对我的 kube-proxy 问题进行故障排除,有一次我进行了更改,但这并不是最终解决问题的方法,所以我不确定是否真的需要。
如果您的 运行 flannel,请不要忘记确保其使用正确的 --iface,因为它喜欢使用 eth0。
https://github.com/kubernetes/kubernetes/issues/44702
通过将 --node-ip=
传递给 kubelet 解决了问题。