项目交付时遇到的一些问题及反思

在某地出差做实施的时候,把以前没遇到过的坑都遇到了,只能说出来混迟早要还的。

1.k8s pod网络不通。

这个问题特别诡异,部署了两个pod,会有一个网络出现问题,ping 不通docker网关,ping不通svc地址,ping不通其他pod 的ip。
pod-A通,pod-B不通。过几分钟变成了pod-A网络不通,pod-B网络通。
尝试过的方法:
最开始安装的是k8s1.18.16,使用默认的calico网络插件的ipip模式,后修改为bgp模式,失败
将calico改为flannel,失败。
怀疑版本问题,将k8s升级到1.19.8,使用calico cni的ipip模式,修改为bgp模式,改为用flannel,失败。
怀疑机房网络有限制,联系机房网络人员对接,回复无任何限制。
找了几个k8s大佬指导,也无效果。
仔细排查发现,pod出现网络问题都是在k8sn3这台机器上,再一检查,这台机器内核升级失败了,还是默认的3.10.x,其余机器均为5.8.x,升级内核后
问题解决。

总结就是,要细心啊。

2.基础不牢固

由于默认不能访问互联网如微信登录等网页的权限,所以需要走申请。机房开通后宿主机可以访问外网,而k8s里不行。
正常情况下,k8s cni不管使用什么插件,都要通过宿主机的网卡进行转发的。怀疑机房做的策略特别严格,还需要对
k8s的网段100.64.0.0/10做策略,机房说这个网段和其他业务有冲突,要求修改为 101.200.0.0/24。于是在网上查如何修改calico
,官方说需要删除所有旧的pod才能生效,那我还不如重装呢。于是重装k8s,重新部署。又浪费一天时间。
哪里基础不牢固呢?

kubectl edit ds calico-node -n kube-system

查到了calico的网段是value: 100.64.0.0/10,但是查看k8s的pod有 100.68.x.x、100.79.x.x,就觉得这不准啊。
后来被大佬教育了一番,通过ip计算机去计算这个网段,发现这些ip地址确实都是包含在内的。

总结就是,基础太差了,好好学习吧。

未完待续

上一篇:calico.yaml


下一篇:k8s部署calico网络后,calico-node显示READY 0/1