Fork me on GitHub

使用k8s 需要关注的版本问题

Kubernetes 社区大约会每隔三个月发布次要版本。 从2020年8月发布的版本 1.19 开始 ,Kubernetes 社区将每个版本的支持时长从 9 个月增加到了 12 个月

长期支持(LTS)工作组在2019年初进行的一项调查显示在当前的9个月支持期内,很大一部分 Kubernetes 用户未能升级。这一点以及调查中的其他反应表明,如果将补丁支持期延长至12-14个月,则30%的用户能够将其部署保持在支持的版本上。无论用户使用的是自建版还是商业发行版,情况都是如此。因此,延长支持期将导致超过 80% 的用户使用受支持的版本,而不是现在的 50-60%。一年一度的支持期可为用户提供所需的缓冲期,并且更符合熟悉的年度规划周期。从 Kubernetes 1.19 版本开始,支持窗口将延长到一年。

次要版本包括新增功能和改进。 补丁发布更为频繁(有时每周都会发布),适用于次要版本中的关键 Bug 修复。 修补程序版本包括针对安全漏洞或主要 bug 的修复。为了使集群中一直跟随着版本前进,如果一直不更新,会导致新功能无法使用,落后新版本太多版本,不方便升级。落后2个大版本以上的,需要考虑支持的功能以及参数,Kubernetes 会将一些功能删除,或者更改资源名称。类似这样的情况,Kubernetes 其实也是给了使用者很好的兼容方式的,每个大版本会兼容前两个大版本中的功能,如 1.21可以兼容 1.20和 1.19,并不兼容 1.18,如果从 1.18 直接升级到 1.21,很有可能有些功能或者参数在 1.21已经不支持了。

如果已经落后版本太多,还想要升级也是有办法的,需要递归升级,如 1.12 先升级到 1.14 ,1.14 再升级到 1.16,以此类推。

那么我们升级Kubernetes的 策略如何做?

  • 最好的方式是始终保持最新
  • 每半年升级一次,资源会落后社区1~2个小版本(推荐)
  • 一年升级一次,或者更长,落后版本太多(不推荐)

升级流程

升级管理节点 —> 升级其余管理节点 —> 升级worker节点

注意事项:升级前必须备份所有组件及数据,例如 etcd


参考:

[1]将 Kubernetes 支持窗口增加到一年:https://kubernetes.io/blog/2020/08/31/kubernetes-1-19-feature-one-year-support/

[2] Azure Kubernetes 服务的支持策略: https://docs.microsoft.com/zh-cn/azure/aks/support-policies 

[3] Azure Kubernetes 服务 (AKS) 中支持的 Kubernetes 版本:https://docs.microsoft.com/zh-cn/azure/aks/supported-kubernetes-versions?tabs=azure-cli#kubernetes-version-support-policy

posted @ 2022-02-19 09:03  张善友  阅读(1560)  评论(0编辑  收藏  举报