背景: 目前我们线上k8s环境的calico都是采取正则匹配网卡名称,由于后期不断加入的主机是多网卡,不同主机存储网卡和业务网卡存在网卡名称相同的冲突,导致采取通过宿主机的路由自动检测正确的ip地址。
一、获取主机路由的目的地址
192.168.133.0就是本段主机的目的地址,对应的是enss33网卡, 如下图:
二、修改calico的更新策略
calico有两种更新策略,分别是OnDelete和RollingUpdate,因为线上运行了一部分租户的服务,只能修改更新策略为OnDelete,防止修改calico的资源控制器后导致所有节点的calico重起,两种策略说明如下:
OnDelete: 使用 OnDelete 更新策略时,在更新 DaemonSet 模板后,只有当你手动删除老的 DaemonSet pods 之后,新的 DaemonSet Pod 才会被自动创建。
RollingUpdate: 这是默认的更新策略。使用 RollingUpdate 更新策略时,在更新 DaemonSet 模板后, 老的 DaemonSet Pod 将被终止,并且将以受控方式自动创建新的 DaemonSet Pod。 更新期间,最多只能有 DaemonSet 的一个 Pod 运行于每个节点上。
修改内容如下图:
三、修改calico配置添加目的路由ip地址
四、测试修改之后是否可用
修改完成以后,可以重启一个calico的node节点,然后重启下节点上的服务,测试下结果,如下图,测试可用