Kubernetes 1.29:云提供商集成现在是独立组件
内容提要
Kubernetes v1.29 版本改变了云提供商集成的默认行为,用户需确认配置并可能使用外部云控制器管理器。建议用户尽快迁移,以适应未来的版本更新。
延伸解读
升级影响范围:谁需要采取行动
根据文章,如果你从 Kubernetes 1.28 或更高版本升级,且不在 Azure、GCE 或 vSphere 上,则无需任何更改。但如果你使用这三个平台之一,或者从低于 1.28 的版本升级,就需要调整配置。此外,AWS 和 OpenStack 的内置集成已在 1.26 和 1.27 中移除,相关用户也必须迁移。
迁移与保留:两种升级路径的权衡
文章给出了两种选择:迁移到外部云控制器管理器,或继续使用树内提供程序代码。迁移是推荐路径,需要为 kube-apiserver、kube-controller-manager 和 kubelet 启用 --cloud-provider=external 标志,并部署对应的云控制器管理器。若选择保留,则需显式将两个特性门控设为 false,但文章强调这只是最后手段,因为门控将在未来版本锁定为 true。
未来版本风险:内置提供程序即将移除
文章明确指出,内置云提供程序计划最早在 Kubernetes 1.31 中移除。届时,DisableCloudProviders 和 DisableKubeletCloudCredentialProviders 特性门控将无法再被覆盖为 false。这意味着依赖旧版集成的用户如果不及早迁移,未来升级将被迫中断。因此,尽快迁移到外部云控制器管理器是规避风险的关键。
外部云控制器管理器的获取与支持
对于需要外部云控制器管理器的用户,文章建议联系云提供商获取首选方案,或向 Kubernetes SIG Cloud Provider 社区寻求帮助。SIG 提供了开发参考框架,并且许多云控制器管理器已开源。此外,kOps 项目提供了自动化安装方案。注意,并非所有云控制器管理器都开源,用户应确认其提供商的支持策略。
Q&A
Kubernetes v1.29 版本有哪些主要变化?
Kubernetes v1.29 版本改变了云提供商集成的默认行为,用户需确认配置并可能需要使用外部云控制器管理器。
为什么建议用户迁移到外部云控制器管理器?
建议迁移到外部云控制器管理器是因为内置提供商计划在 Kubernetes v1.31 中移除,迁移可以确保兼容未来版本。
如何在 Kubernetes 中启用外部云控制器管理器?
用户需要在 kube-apiserver、kube-controller-manager 和 kubelet 中启用 --cloud-provider=external 标志,并部署相应的云控制器管理器。
Kubernetes v1.29 中的功能开关有什么变化?
在 Kubernetes v1.29 中,两个功能开关的默认值从 false 改为 true,影响云提供商相关代码的调用。
使用旧版集成的用户需要注意什么?
使用旧版集成的用户需要确认他们的配置,并可能需要迁移到外部云控制器管理器以避免未来的兼容性问题。
Kubernetes 社区为何决定外部化云提供商集成?
Kubernetes 社区决定外部化云提供商集成是为了让云提供商能够独立于核心 Kubernetes 发布周期进行开发和发布。