乐趣区

关于javascript:容器coredns问题排查整理

简介: 容器 coredns 问题排查整顿

1. 问题形容

客户侧在变更容器平安组之后呈现网络不通。

2. 问题排查

1)接到客户反馈 Kubernetes 托管版集群呈现网络问题,电话沟通后受权进行查看:Pod 网络通顺,域名解析出现异常;(ping IP 可通,但 ping 域名不通)
2)联合客户操作,狐疑与平安组配置无关,尝试进一步排查平安组问题。具体排查无问题后,决定重启 coredns POD。重启后 coredns POD 漂移到其它 ECS 上,集群中大部分主机恢复正常;
3)确认 coredns 原宿主机存在网络连接问题,将该主机踢出集群后,集群恢复正常;
4)通过环境测试后最终定位起因在于客户侧误会 Kubernetes 集群平安组页面“解绑实例”性能为解绑平安组,导致误操作解绑和绑定 ENI 网卡,同时产品健康检查机制存在缺点,无奈探测到辅助网卡的链路问题,导致问题无奈疾速发现并解决,最终导致客户集群网络无奈联通。

3. 优化改良

1)优化平安组页面存在“解绑实例”性能文案,同时减少由 Kubernetes 集群创立的网卡在用户解绑时的危险提醒,防止客户误操作引发业务中断;
2)优化健康检查机制,确保辅助网卡链路异样场景可能被疾速发现。

4. 问题复现

4.1 环境筹备

1)kubernetes 托管版集群,网络模式为 Terway,kube-proxy 代理模式为 IPVS,四节点,须要创立测试的利用 pod;

图 1:初始环境

2)查看 coredns 所在的宿主机,目前该 pod 存在于 201、200 机器上;

图 2:coredns pod

4.2 具体操作

1)模仿客户侧的操作在平安组界面“解绑 coredns 所在主机的辅助网卡”;
登录 ECS 控制台 – 实例 – 抉择机器 – 本实例弹性网卡界面查看

图 3:实例弹性网卡

跳转至平安组界面 — 抉择集群的平安组实例 id— 平安组内弹性网卡 – 搜寻刚刚查找的弹性网卡 – 解绑实例

图 4:平安组内弹性网卡

2)解绑实现之后再次将辅助网卡绑定至原有实例;

图 5:查看原有实例网卡

3)登录任意一个利用 pod 内,利用 dig baidu.com 测试解析是否失常
kubectl exec -it centos-deployment-75765fbb54-x5f6v — /bin/bash,进入 pod 内:

图 6:pod 内测试

上图就是一开始客户侧遇到的景象:ping 域名不通,ping IP 能够通。

4)为什么解绑之后从新绑定至原有实例还是不能够呢?起因就在于解绑后从新绑定网卡后该网卡的 state 依然是 DOWN 状态,须要从新 up 网卡;
up 网卡:ip link set eth1 up

图 7:up 网卡

网卡在被 up 后,再次进入 pod 进行测试,会发现解析就能够失常运行了。

图 8:up 网卡后测试

其实 kube-dns 后有两个 coredns POD,那么这两个 coredns 是采取什么策略去提供解析服务呢?

5. 问题剖析

利用 ipvsadm 能够看到 coredns 是依照 rr 的形式去提供服务的,并且设置了 session 的超时放弃工夫是 10800(超时工夫能够通过查看 kube-dns 的 yaml 文件):

图 9:kube-dns 的 session 工夫

正是因为上述 kube-dns 的 session 的放弃工夫设置了 10800,导致域名解析的申请始终都是寻找坏的 coredns POD(坏 coredns 也就是被解绑后从新绑定辅助网卡的那台机器上的 coredns),所以客户侧在解绑操作后续始终没有无奈进行失常解析,相似于上面的景象:

图 10:长 ping 失败景象

测试上来掉该 session 设置,再次进行域名解析测试(批改 kube-dns svc 的 yaml 中的 sessionAffinity 为 None):

图 11:svc yaml

图 12:dig 图

图 13:tcpdump 抓包

所以批改 sessionAffinity 为 None 后,第一次的解析会走好的 coredns,第二次申请就会走坏的 coredns,这也就是证实 coredns 以 rr 策略提供服务的。

图 14:长 ping 失常景象

咱们是阿里云智能寰球技术服务 -SRE 团队,咱们致力成为一个以技术为根底、面向服务、保障业务零碎高可用的工程师团队;提供业余、体系化的 SRE 服务,帮忙广大客户更好地应用云、基于云构建更加稳固牢靠的业务零碎,晋升业务稳定性。咱们冀望可能分享更多帮忙企业客户上云、用好云,让客户云上业务运行更加稳固牢靠的技术,您可用钉钉扫描下方二维码,退出阿里云 SRE 技术学院钉钉圈子,和更多云上人交换对于云平台的那些事。

原文链接
本文为阿里云原创内容,未经容许不得转载。

退出移动版