兼容性风险检查 本文主要介绍兼容性风险检查。 检查项内容 请您阅读版本兼容性差异,并确认不受影响。 补丁升级不涉及版本兼容性差异。 版本兼容性差异 大版本升级路径 版本差异 建议自检措施 ::: v1.19升级至v1.21或v1.23 Kubernetes v1.21集群版本修复 了exec probe timeouts不生效的BUG,在此修复之前,exec 探测器不考虑 timeoutSeconds 字段。相反,探测将无限期运行,甚至超过其配置的截止日期,直到返回结果。 若用户未配置,默认值为1秒。升级后此字段生效,如果探测时间超过1秒,可能会导致应用健康检查失败并频繁重启。 升级前检查您使用了exec probe的应用的probe timeouts是否合理。 v1.19升级至v1.21或v1.23 CCE的v1.19及以上版本的kubeapiserver要求客户侧webhook server的证书必须配置Subject Alternative Names (SAN)字段。否则升级后kubeapiserver调用webhook server失败,容器无法正常启动。 根因:Go语言v1.15版本废弃了X.509 CommonName,CCE的v1.19版本的kubeapiserver编译的版本为v1.15,若客户的webhook证书没有Subject Alternative Names (SAN),kubeapiserver不再默认将X509证书的CommonName字段作为hostname处理,最终导致认证失败。 升级前检查您自建webhook server的证书是否配置了SAN字段。 若无自建webhook server则不涉及。 若未配置,建议您配置使用SAN字段指定证书支持的IP及域名。 v1.19升级至v1.21或v1.23 1.21及以上版本不支持管理ARM节点。 确认升级后无法管理ARM节点不影响您的使用场景。 v1.15升级至v1.19 CCE v1.19版本的控制面与v1.15版本的Kubelet存在兼容性问题。若Master节点升级成功后,节点升级失败或待升级节点发生重启,则节点有极大概率为NotReady状态。 主要原因为升级失败的节点有大概率重启kubelet而触发节点注册流程,v1.15 kubelet默认注册标签(failuredomain.beta.kubernetes.io/isbaremetal和kubernetes.io/availablezone)被v1.19版本kubeapiserver视为非法标签。 v1.19版本中对应的合法标签为node.kubernetes.io/baremetal和failuredomain.beta.kubernetes.io/zone。 正常升级流程不会触发此场景。 在Master升级完成后尽量避免使用暂停升级功能,快速升级完Node节点。 若Node节点升级失败且无法修复,请尽快驱逐此节点上的应用,请联系技术支持人员,跳过此节点升级,在整体升级完毕后,重置该节点。 v1.15升级至v1.19 CCE的v1.15版本集群及v1.19版本集群将docker的存储驱动文件系统由 xfs切换成ext4,可能会导致升级后的java应用Pod内的import包顺序异常,既而导致Pod异常。 升级前查看节点上docker配置文件/etc/docker/daemon.json。检查dm.fs配置项是否为xfs。 若为ext4或存储驱动为overlay则不涉及。 若为xfs则建议您在新版本集群预先部署应用,以测试应用与新版本集群是否兼容。 { "storagedriver": "devicemapper", "storageopts": [ "dm.thinpooldev/dev/mapper/vgpaasthinpool", "dm.usedeferredremovaltrue", "dm.fsxfs", "dm.usedeferreddeletiontrue" ] } v1.15升级至v1.19 CCE的v1.19及以上版本的kubeapiserver要求客户侧webhook server的证书必须配置Subject Alternative Names (SAN)字段。否则升级后kubeapiserver调用webhook server失败,容器无法正常启动。 根因:Go语言v1.15版本废弃了X.509 [](