作为当前最流行的容器调度管理平台,kubernetes社区是非常活跃的,几乎每季度都会发布一个release。但是线上集群业务可用性要求较高,场景复杂,任何微小的变更都需要非常小心,此时跟随社区版本进行升级略显吃力。但是为了能够使用到最新的一些功能以及安全性我们又必须不定期进行一些升级操作。那么在这个时候完全托管 Azure Kubernetes 服务 (AKS)就显示出了其优势所在。
Azure Kubernetes 服务提供多个 Kubernetes 版本。 新版本在 AKS 中可用以后,即可使用 Azure 门户或 Azure CLI 升级群集。 在升级过程中,节点会被仔细封锁和排除以尽量减少对正在运行的应用程序造成中断。
在AKS群集升级时,有如下两点需要注意:

  • 升级 AKS 群集时,不能跳过 Kubernetes 次要版本。 例如,允许从 1.12.x 升级到 1.13.x ,或者从 1.13.x 升级到 1.14.x ,但不允许从 1.12.x 升级到 1.14.x 。
  • 若要从 1.12.x 升级到 1.14.x ,请先从 1.12.x 升级到 1.13.x ,然后再从 1.13.x 升级到 1.14.x 。

说了这么多下面我们来看下如何快速升级AKS群集到指定版本
首先需要使用如下命令列出目前 resource group 的 AKS群集信息, 其中 kubernetesVersion为群集版本:
az aks list
升级Azure Kubernetes群集

使用如下命令列出Azure在东南亚数据中心中可用的 kubernetes 版本, 其中 -l 是 location 参数, 以本例是 southeastasia:
az aks get-versions -l southeastasia
升级Azure Kubernetes群集

使用如下命令将AKS群集从 1.14.8 升级到1.15.5:
az aks upgrade -g devopslab -n labaks -k “1.15.5”
升级Azure Kubernetes群集
升级Azure Kubernetes群集

升级时可以在Azure Portal检查状态:
升级Azure Kubernetes群集

升级完成后,我们可以看到群集以及升级到指定版本:
升级Azure Kubernetes群集