Kubernetes 版本及版本偏差支持策略

    Kubernetes 版本号格式为 x.y.z,其中 x 为大版本号,y 为小版本号,z 为补丁版本号。 版本号格式遵循 规则。 更多信息,请参阅 Kubernetes 发布版本

    Kubernetes 项目会维护最近的三个小版本分支(1.20, 1.19, 1.18)。 Kubernetes 1.19 及更高的版本将获得大约1年的补丁支持。 Kubernetes 1.18 及更早的版本获得大约9个月的补丁支持。

    一些 bug 修复,包括安全修复,取决于其严重性和可行性,有可能会反向合并到这三个发布分支。 补丁版本会或根据需要从这些分支中发布。 最终是否发布是由发布管理者来决定的。 如需了解更多信息,请查看 Kubernetes 。

    高可用(HA)集群 中, 多个 实例小版本号最多差1。

    例如:

    • 最新的 kube-apiserver 版本号如果是 1.20
    • 则受支持的 kube-apiserver 版本号包括 1.201.19

    kubelet

    kubelet 版本号不能高于 kube-apiserver,最多可以比 kube-apiserver 低两个小版本。

    例如:

    • 受支持的的 kubelet 版本将包括 1.201.191.18

    例如:

    • 如果 kube-apiserver 实例同时存在 1.201.19
    • kubelet 的受支持版本将是 1.191.181.20 不再支持,因为它比 1.19 版本的 kube-apiserver 更新)

    例如:

    • 如果 kube-apiserver 版本号为 1.20
    • kube-controller-managerkube-schedulercloud-controller-manager 版本支持 1.201.19

    例如:

    • kube-apiserver 实例同时存在 1.201.19 版本
    • kube-controller-managerkube-schedulercloud-controller-manager 可以通过 load balancer 与所有的 kube-apiserver 通信
    • kube-controller-managerkube-schedulercloud-controller-manager 可选版本为 1.191.20 不再支持,因为它比 1.19 版本的 kube-apiserver 更新)

    kubectl

    kubectl 可以比 kube-apiserver 高一个小版本,也可以低一个小版本。

    例如:

    • 如果 kube-apiserver 当前是 1.20 版本
    • kubectl 则支持 1.211.201.19

    例如:

    • kube-apiserver 多个实例同时存在 1.201.19
    • kubectl 可选的版本为 1.201.19(其他版本不再支持,因为它会比其中某个 kube-apiserver 实例高或低一个小版本)

    组件之间支持的版本偏差会影响组件升级的顺序。 本节描述组件从版本 1.191.20 的升级次序。

    前提条件:

    • 单实例集群中,kube-apiserver 实例版本号须是 1.19
    • kube-controller-managerkube-scheduler 和 版本号必须为 1.19(确保不高于 API server 的版本,且版本号相差不大于1)
    • kubelet 实例版本号必须是 1.191.18(确保版本号不高于 API server,且版本号相差不大于2)
    • 注册的 admission 插件必须能够处理新的 kube-apiserver 实例发送过来的数据:
      • ValidatingWebhookConfigurationMutatingWebhookConfiguration 对象必须升级到可以处理 1.20 版本新加的 REST 资源(或使用 1.15 版本提供的 )
      • 插件可以处理任何 1.20 版本新的 REST 资源数据和新加的字段

    kube-controller-manager、kube-scheduler 和 cloud-controller-manager

    前提条件:

    • kube-apiserver 实例必须为 1.20 (HA 集群中,所有的kube-apiserver 实例必须在组件升级前完成升级)

    升级 kube-controller-managerkube-schedulercloud-controller-manager1.20

    前提条件:

    • kube-apiserver 实例必须为 1.20 版本

    kubelet 可以升级到 1.20(或者停留在 1.191.18

    kube-proxy

    • kube-proxy 必须与节点上的 kubelet 的小版本相同
    • kube-proxy 一定不能比 kube-apiserver 小版本更新
    • kube-proxy 最多只能比 kube-apiserver 早两个小版本

    例如:

    • 版本必须相同,也是 1.18