在GKE中是否可以将CNI插件更换为Calico?
GKE集群CNI更换问题解答
GKE是否支持更换CNI插件
GKE官方支持使用自定义CNI插件,前提是创建集群时选择「自定义CNI」的网络模式,不使用GKE默认预装的kubenet或VPC原生CNI。如果是使用默认预装CNI的存量集群,直接修改替换CNI会被GKE托管组件自动还原,不被官方支持。
v1.18.x版本GKE集群能否更换为IP-in-IP封装的Calico
分两种场景对应不同操作:
- 新建1.18.x版本GKE集群:创建时勾选自定义CNI模式,集群初始化完成后自行部署对应兼容版本的Calico,部署时调整Calico配置开启IP-in-IP封装即可正常使用,v3.16及以上版本的Calico可兼容GKE 1.18.x版本。
- 存量1.18.x版本GKE集群:如果集群创建时没有选择自定义CNI模式,不支持直接替换为Calico。强制替换会导致节点网络异常、工作负载通信故障,且后续GKE的节点升级、自愈操作都会覆盖你修改的CNI配置,建议重新创建自定义CNI模式的集群后迁移业务负载。
注意事项
- 开启IP-in-IP封装会增加数据包头部开销,会产生少量网络性能损耗,上线前建议做好性能压测验证。
- GCP VPC默认不拦截IP-in-IP协议(协议号4),除非你手动配置了VPC防火墙的高危协议拦截规则,否则不需要额外加放行规则。
- 使用自定义CNI的集群,GKE官方不对第三方CNI的运行故障提供支持,Calico相关的网络问题需要你自行维护排查。
内容的提问来源于stack exchange,提问作者Oli
相关产品推荐
相关产品推荐

