Kubectl 正在运行,但我无法访问任何组件
Kubectl is working but I can't access any of the components
我们有一个小型私有 k8s 集群,直到今天早上一切正常,但从今天早上开始,只有 kubectl 在工作,没有流量通过。
我的意思是我可以启动新的部署,杀死它们,等等,我可以看到它们已经启动并且 运行
但是当我想通过 http、amqp 等访问它们时,我不能。
我正在查看我们的 nginx 日志并尝试转到主页,但是没有登录 nginx 并且浏览器中没有加载任何内容,这意味着 nginx 没有收到任何流量。
我们使用 Weave net 作为我们的 CNI。
我检查了 dns 日志并对其进行了测试,dns 正在运行。我不知道从哪里开始寻找解决这个问题的方法,有什么建议吗?
更新
几个小时后问题几乎解决了,现在我可以访问我的应用程序了,但我想问另一个与此密切相关的问题:
有没有办法检测出问题是网络问题还是集群网络问题(k8s内部网络)?我问这个是因为过去我遇到了 k8s dns 的问题,这次我认为 k8s CNI 有问题。
更新 2
现在我在 weave 中看到这个错误:
ERRO: 2019/09/27 11:10:03.358321 Captured frame from MAC (d2:14:2a:47:62:d9) to (02:01:5b:b9:8e:fd) associated with another peer 4a:8d:75:d7:59:ff(serflex-argus-2)
我的环境:
- Kubernetes 版本:
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.1", GitCommit:"b7394102d6ef778017f2ca4046abbaa23b88c290", GitTreeState:"clean", BuildDate:"2019-04-08T17:11:31Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:05:50Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
云提供商或硬件配置:
内部私有集群包含 5 个节点并使用 kubeadm 设置。
OS(例如:cat /etc/os-release):
所有机器都是运行Ubuntu18.04.3
- 内核(例如 uname -a):
Linux k8s-master 4.15.0-62-generic #69-Ubuntu SMP Wed Sep 4 20:55:53 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
- 安装工具:
kubeadm
- 网络插件和版本(
weave status
):
/home/weave # ./weave --local status
Version: 2.5.2 (up to date; next check at 2019/09/27 15:12:49)
Service: router
Protocol: weave 1..2
Name: 02:01:5b:b9:8e:fd(k8s-master)
Encryption: disabled
PeerDiscovery: enabled
Targets: 1
Connections: 5 (4 established, 1 failed)
Peers: 5 (with 20 established connections)
TrustedSubnets: none
Service: ipam
Status: ready
- Docker版本:
Docker version 19.03.2, build 6a30dfc
我找不到这个问题的解决方案,我不得不拆除集群并重新创建它,但这次我使用了 Calico,在 运行 一周后没有出现问题。
我认为唯一可能导致问题的是 Weave 的 200Mb 内存限制以及我的 Weave pods 中五分之四的内存达到该限制以及它们的 github 我发现 Weave 存在内存泄漏问题,因此我决定更改 CNI。
我们有一个小型私有 k8s 集群,直到今天早上一切正常,但从今天早上开始,只有 kubectl 在工作,没有流量通过。
我的意思是我可以启动新的部署,杀死它们,等等,我可以看到它们已经启动并且 运行
但是当我想通过 http、amqp 等访问它们时,我不能。
我正在查看我们的 nginx 日志并尝试转到主页,但是没有登录 nginx 并且浏览器中没有加载任何内容,这意味着 nginx 没有收到任何流量。
我们使用 Weave net 作为我们的 CNI。
我检查了 dns 日志并对其进行了测试,dns 正在运行。我不知道从哪里开始寻找解决这个问题的方法,有什么建议吗?
更新
几个小时后问题几乎解决了,现在我可以访问我的应用程序了,但我想问另一个与此密切相关的问题:
有没有办法检测出问题是网络问题还是集群网络问题(k8s内部网络)?我问这个是因为过去我遇到了 k8s dns 的问题,这次我认为 k8s CNI 有问题。
更新 2
现在我在 weave 中看到这个错误:
ERRO: 2019/09/27 11:10:03.358321 Captured frame from MAC (d2:14:2a:47:62:d9) to (02:01:5b:b9:8e:fd) associated with another peer 4a:8d:75:d7:59:ff(serflex-argus-2)
我的环境:
- Kubernetes 版本:
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.1", GitCommit:"b7394102d6ef778017f2ca4046abbaa23b88c290", GitTreeState:"clean", BuildDate:"2019-04-08T17:11:31Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:05:50Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
云提供商或硬件配置: 内部私有集群包含 5 个节点并使用 kubeadm 设置。
OS(例如:cat /etc/os-release): 所有机器都是运行Ubuntu18.04.3
- 内核(例如 uname -a): Linux k8s-master 4.15.0-62-generic #69-Ubuntu SMP Wed Sep 4 20:55:53 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
- 安装工具: kubeadm
- 网络插件和版本(
weave status
):
/home/weave # ./weave --local status
Version: 2.5.2 (up to date; next check at 2019/09/27 15:12:49)
Service: router
Protocol: weave 1..2
Name: 02:01:5b:b9:8e:fd(k8s-master)
Encryption: disabled
PeerDiscovery: enabled
Targets: 1
Connections: 5 (4 established, 1 failed)
Peers: 5 (with 20 established connections)
TrustedSubnets: none
Service: ipam
Status: ready
- Docker版本:
Docker version 19.03.2, build 6a30dfc
我找不到这个问题的解决方案,我不得不拆除集群并重新创建它,但这次我使用了 Calico,在 运行 一周后没有出现问题。
我认为唯一可能导致问题的是 Weave 的 200Mb 内存限制以及我的 Weave pods 中五分之四的内存达到该限制以及它们的 github 我发现 Weave 存在内存泄漏问题,因此我决定更改 CNI。