在 1.17.2 上,每个新节点的 InternalIP 等于 ExternalIP
On 1.17.2, each new node has InternalIP equal to ExternalIP
从本周一开始,在从 Rancher 内部升级到 1.17.2 后,每个新节点(DigitalOcean 液滴,都带有 Ubuntu 18.04.3)将其内部 IP 错误地等于外部 IP,Public一个!
这又是我自周一以来一直遇到的 intra-cluster DNS 解析不足的主要嫌疑犯,因为我刚刚发现无响应的服务位于具有 InternalIP=ExternalIP 的新节点上。
kubectl describe node exacto-devel-mail-01
...
Addresses:
InternalIP: 37.139.20.177
Hostname: exacto-devel-mail-01
一个 "old" 节点(1.17.2 之前的升级,所以大概我们是 运行 在 1.16.6 上):
kubectl describe node exacto-devel-06
...
Addresses:
InternalIP: 10.129.254.119
Hostname: exacto-devel-06
我尝试编辑节点,分配正确的 InternalIP 值,但没有任何反应!它只是继续显示错误的地址!
在另一个集群升级到 v1.16.6 后,解决 cluster-DNS 容器 运行 名称失败的问题出现在另一个集群上,这些节点具有损坏的 InternalIP。所以我可以说这个问题影响了 Kubernetes 1.16.6
和 1.17.2,至少在 Rancher-managed k8s 集群中。
为了进一步阐明问题,以下是我的开发环境集群中的当前节点列表:
kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
exacto-devel-01 Ready controlplane,etcd 11d v1.17.2 37.139.0.68 <none> RancherOS v1.5.5 4.14.138-rancher docker://19.3.5
exacto-devel-02 Ready controlplane,etcd 11d v1.17.2 37.139.0.231 <none> RancherOS v1.5.5 4.14.138-rancher docker://19.3.5
exacto-devel-03 Ready controlplane,etcd 11d v1.17.2 37.139.4.139 <none> RancherOS v1.5.5 4.14.138-rancher docker://19.3.5
exacto-devel-04 Ready worker 11d v1.17.2 10.129.254.158 <none> Ubuntu 18.04.3 LTS 4.15.0-74-generic docker://19.3.5
exacto-devel-05 Ready worker 11d v1.17.2 10.129.254.200 <none> Ubuntu 18.04.3 LTS 4.15.0-74-generic docker://19.3.5
exacto-devel-06 Ready worker 10d v1.17.2 10.129.254.119 <none> Ubuntu 18.04.3 LTS 4.15.0-74-generic docker://19.3.2
exacto-devel-elk-01 Ready worker 25h v1.17.2 185.14.186.204 <none> Ubuntu 18.04.4 LTS 4.15.0-76-generic docker://19.3.5
exacto-devel-elk-02 Ready worker 7h8m v1.17.2 198.211.118.87 <none> Ubuntu 18.04.4 LTS 4.15.0-76-generic docker://19.3.5
如您所见,01,02,03 和 elk-01,elk-02 都受此问题影响:在 "InternalIP" 列 header 下有一个清晰可辨的 Public 知识产权!
虽然它在 01,02 和 03 节点上似乎无关紧要,因为它们具有 etcd 和控制平面角色,但它实际上阻止了集群扩展以添加新功能(本例中为 ELK),因为部署了任何工作负载在这些新节点上将面临 intra-cluster DNS 解析问题。
请指教下一步该怎么做!
谢谢
当您从 rancher 创建自定义集群时,您可以为 rancher agent 指定 IP 地址,代理将使用该 IP 注册节点。
从本周一开始,在从 Rancher 内部升级到 1.17.2 后,每个新节点(DigitalOcean 液滴,都带有 Ubuntu 18.04.3)将其内部 IP 错误地等于外部 IP,Public一个! 这又是我自周一以来一直遇到的 intra-cluster DNS 解析不足的主要嫌疑犯,因为我刚刚发现无响应的服务位于具有 InternalIP=ExternalIP 的新节点上。
kubectl describe node exacto-devel-mail-01
...
Addresses:
InternalIP: 37.139.20.177
Hostname: exacto-devel-mail-01
一个 "old" 节点(1.17.2 之前的升级,所以大概我们是 运行 在 1.16.6 上):
kubectl describe node exacto-devel-06
...
Addresses:
InternalIP: 10.129.254.119
Hostname: exacto-devel-06
我尝试编辑节点,分配正确的 InternalIP 值,但没有任何反应!它只是继续显示错误的地址!
在另一个集群升级到 v1.16.6 后,解决 cluster-DNS 容器 运行 名称失败的问题出现在另一个集群上,这些节点具有损坏的 InternalIP。所以我可以说这个问题影响了 Kubernetes 1.16.6 和 1.17.2,至少在 Rancher-managed k8s 集群中。
为了进一步阐明问题,以下是我的开发环境集群中的当前节点列表:
kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
exacto-devel-01 Ready controlplane,etcd 11d v1.17.2 37.139.0.68 <none> RancherOS v1.5.5 4.14.138-rancher docker://19.3.5
exacto-devel-02 Ready controlplane,etcd 11d v1.17.2 37.139.0.231 <none> RancherOS v1.5.5 4.14.138-rancher docker://19.3.5
exacto-devel-03 Ready controlplane,etcd 11d v1.17.2 37.139.4.139 <none> RancherOS v1.5.5 4.14.138-rancher docker://19.3.5
exacto-devel-04 Ready worker 11d v1.17.2 10.129.254.158 <none> Ubuntu 18.04.3 LTS 4.15.0-74-generic docker://19.3.5
exacto-devel-05 Ready worker 11d v1.17.2 10.129.254.200 <none> Ubuntu 18.04.3 LTS 4.15.0-74-generic docker://19.3.5
exacto-devel-06 Ready worker 10d v1.17.2 10.129.254.119 <none> Ubuntu 18.04.3 LTS 4.15.0-74-generic docker://19.3.2
exacto-devel-elk-01 Ready worker 25h v1.17.2 185.14.186.204 <none> Ubuntu 18.04.4 LTS 4.15.0-76-generic docker://19.3.5
exacto-devel-elk-02 Ready worker 7h8m v1.17.2 198.211.118.87 <none> Ubuntu 18.04.4 LTS 4.15.0-76-generic docker://19.3.5
如您所见,01,02,03 和 elk-01,elk-02 都受此问题影响:在 "InternalIP" 列 header 下有一个清晰可辨的 Public 知识产权! 虽然它在 01,02 和 03 节点上似乎无关紧要,因为它们具有 etcd 和控制平面角色,但它实际上阻止了集群扩展以添加新功能(本例中为 ELK),因为部署了任何工作负载在这些新节点上将面临 intra-cluster DNS 解析问题。
请指教下一步该怎么做! 谢谢
当您从 rancher 创建自定义集群时,您可以为 rancher agent 指定 IP 地址,代理将使用该 IP 注册节点。