内容提要
Kubernetes项目成功将内置云提供商集成迁移至外部插件,减少约150万行代码,核心组件二进制大小降低约40%。此举旨在简化Kubernetes并实现供应商中立,未来将专注于改进云控制器测试和与云提供商的集成。
延伸解读
迁移背景与核心动机
Kubernetes 自 v1.7 起便计划移除内置云提供商集成,主要因为维护所有云提供商的本地支持导致代码库庞大复杂,且阻碍了供应商中立目标的实现。此次迁移将集成移至外部插件,减少了约 150 万行代码,核心组件二进制大小降低约 40%,显著简化了项目。
关键技术子系统与作用
迁移过程中构建了四个子系统:云控制器管理器负责节点初始化和负载均衡器管理;API 服务器网络代理替代 SSH 隧道,提供通用代理;Kubelet 凭证提供程序插件动态获取镜像仓库凭证;容器存储接口(CSI)标准化存储管理。这些子系统实现了与内置功能的完全对等,并已达到 GA 成熟度。
对用户的影响与升级建议
从 v1.31 开始,内置云提供商将被永久禁用并移除。使用 v1.29 之前版本且未迁移的用户应尽快迁移到外部云提供商,可参考 Kubernetes 1.29 的博客文章获取指导。迁移后,用户需确保集群使用外部插件,以保持功能正常并享受更简化的架构。
未来方向与社区参与
SIG Cloud Provider 将专注于改进云控制器测试,并探索 Kubernetes 与云提供商的更好集成方式,包括混合云环境支持。社区鼓励开发者参与双周 SIG 会议,共同推动外部提供商工具和框架的完善,以提升 Kubernetes 生态的可靠性和扩展性。
Q&A
Kubernetes迁移内置云提供商集成的主要原因是什么?
主要原因是维护每个云提供商的本地支持变得复杂,以及希望建立真正的供应商中立平台。
Kubernetes迁移后,核心组件的二进制大小减少了多少?
核心组件二进制大小降低约40%。
迁移过程中构建了哪些新的子系统?
迁移过程中构建了四个新的子系统,以实现与内置功能的完全特性对等。
云控制器管理器在迁移中起到了什么作用?
云控制器管理器是第一个引入的外部组件,负责初始化节点和管理云负载均衡器。
Kubernetes的API服务器网络代理项目有什么新功能?
API服务器网络代理项目提供了通用的代理机制,替代了kube-apiserver中的SSH隧道功能。
从Kubernetes v1.31开始,内置云提供商将会发生什么变化?
从v1.31开始,内置云提供商将被永久禁用并从核心Kubernetes组件中移除。