【发布时间】:2019-09-26 09:40:18
【问题描述】:
我们有一个小型私有 k8s 集群,直到今天早上一切正常,但截至今天早上,只有 kubectl 正常工作,没有流量通过。
我的意思是我可以启动新的部署,杀死它们等等,我可以看到它们已经启动并运行
但是当我想通过 http、amqp 等访问它们时,我不能。
我正在查看我们的 nginx 日志并尝试转到主页,但 nginx 没有登录,浏览器中也没有加载任何内容,这意味着 nginx 没有收到流量。
我们使用 Weave 网络作为我们的 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 进行设置。
操作系统(例如:cat /etc/os-release): 所有机器都运行 Ubuntu 18.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
【问题讨论】:
-
你能在 kubernetes 机器上使用 curl 访问你的应用吗?听起来像是网络问题。
-
我想过,但我不确定这是我们私有数据中心的网络问题还是与 Weavenet 有关。随机我可以通过 curl 或浏览器访问组件,这就像 60% 的失败。
-
kubectl get pods 应该能够分辨出它是什么服务类型。根据您可以访问的服务
-
我认为你没有得到问题。问题不在于服务类型,我知道我们有什么服务类型以及完整的详细信息,因为我编写了它们并设置了集群。问题是从今天早上开始,集群网络开始面临问题,无论是我的平台还是 k8s pod 中的任何 pod 都没有任何错误。
-
嗨@AVarf,你能分享一些dns并从你的集群编织网络服务日志吗?您可以通过从 kube-system 命名空间获取 pod 来做到这一点。
kubectl get pods -n kube-system然后使用以下命令打印日志:kubectl logs <pod-name> -n kube-system
标签: kubernetes weave