首页 > 解决方案 > 由于网络设置不完整,GKE 节点创建失败

问题描述

我正在升级 GKE 中的测试集群,最初创建节点池时遇到问题,其中一个池显示红色感叹号。从 1.15 开始,该池和看似健康的其他池的升级一直失败,因此我删除了这两个池并创建了新池。

不幸的是,创建的节点永远不会添加到池中。在 Compute Engine 中查看机器后,它看起来像是网络配置问题。永远不会创建 cbr0 桥,veth 设备也不会创建,导致盒子没有互联网连接,这似乎是 Kubernetes 节点设置未完成的原因。

我还发现输出:

kubectl get pods --all-namespaces

不像在工作集群中那样显示 kube-proxy pod。

以前有没有人经历过这种情况,如何解决?我有一个几乎相同的集群工作正常,一切都是从 GUI 创建的,默认设置,并且都添加了 VPC 网络(VPN 已启动,没有观察到问题)。

我遇到了: https ://github.com/kubernetes/kubernetes/issues/21401 并检查了:

 /var/lib/docker/network/files/local-kv.db

它不包含 cbr0,删除它并重新启动 Docker 守护程序并没有改变任何东西。

我在同一个项目中还有另一个集群可以正常工作。看起来谷歌管理的主人可能是问题的原因,但我不知道如何进行进一步的故障排除。非常感谢任何帮助,谢谢。

[更新] 其他测试:

ip a 节点上“卡住”的输出:ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc mq state UP group default qlen 1000
    link/ether 42:01:0a:30:0f:eb brd ff:ff:ff:ff:ff:ff
    inet 10.48.15.235/32 scope global dynamic eth0
       valid_lft 2323sec preferred_lft 2323sec
    inet6 fe80::4001:aff:fe30:feb/64 scope link 
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:2d:e7:41:51 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

/usr/bin/toolbox 命令不起作用(来自守护进程的错误响应:获取https://gcr.io/v2/:net/http:在等待连接时取消请求(等待标头时超出 Client.Timeout))太难了进一步排除故障(使用的操作系统是 CoreOS)。

所以似乎是自定义网络造成的。我期望它是一个公共集群,网络应该设置为连接到互联网。我想知道这是一个错误还是错误的设置。有谁知道设置是否应该创建 cbr0 和其他接口?我自己还在进一步调查...

所以最后创建一个新集群显示:

状态详情 所有集群资源都已启动,但是: 3 个节点中只有 0 个已注册;这可能是由于节点未能正确启动;如果不起作用,请尝试重新创建集群或联系支持人员。我没有商业支持,所以如果没有任何结果,我可能会使用公共错误跟踪器。

标签: dockerkubernetesgoogle-kubernetes-engine

解决方案


问题已解决。首先我发现这似乎是一个 DNS 问题,所以当添加 8.8.8.8 到 /etc/resolv.conf 时,互联网路由工作正常。出于某种原因,在节点池突然开始工作并出现在 GUI 中后不久。检查节点机器后,网络接口在那里,并且在扩展节点池中的机器时也可以工作。

不清楚是我的单一操作导致了这种情况,还是 Google Kubernetes 环境中存在问题,我实际上怀疑是后者。感谢任何人的帮助,我这个问题现在已经解决了。


推荐阅读