无需停机即可升级 Azure AKS
Upgrading Azure AKS without downtime
我一直在寻找无需停机即可升级 Azure AKS 的 k8s 版本的方法,并发现了这个很棒的博客 post https://omichels.github.io/zerodowntime-aks.html 但我只在开始时遇到错误
因此目前 运行 我所在地区的 k8s 版本不再可用。当我尝试创建一个临时节点池时出现以下错误
(AgentPoolK8sVersionNotSupported) Version 1.19.6 is not supported in this region.
Please use [az aks get-versions] command to get the supported version list in this region.
For more information, please check https://aka.ms/supported-version-list
如何实现零停机升级?
下面是我不停机升级的方法,供大家参考。
仅升级控制平面。 (可以在azure portal上完成)
添加一个新的节点池。现在新节点池的版本更高(与控制平面相同)。然后为其添加标签,例如nodePool=newNodePool.
将所有应用程序修补到新节点池。 (通过节点选择器)
$ kubectl get deployment -n {namespace} -o name | xargs kubectl patch -p "{\"spec\":{\"template\":{\"spec\":{\"nodeSelector\":{\"nodePool\":\"newNodePool\"}}}}}" -n {namespace}
检查pods是否被安排到新的节点池。
$ kubectl get pods -owide
删除旧的节点池。
我一直在寻找无需停机即可升级 Azure AKS 的 k8s 版本的方法,并发现了这个很棒的博客 post https://omichels.github.io/zerodowntime-aks.html 但我只在开始时遇到错误
因此目前 运行 我所在地区的 k8s 版本不再可用。当我尝试创建一个临时节点池时出现以下错误
(AgentPoolK8sVersionNotSupported) Version 1.19.6 is not supported in this region.
Please use [az aks get-versions] command to get the supported version list in this region.
For more information, please check https://aka.ms/supported-version-list
如何实现零停机升级?
下面是我不停机升级的方法,供大家参考。
仅升级控制平面。 (可以在azure portal上完成)
添加一个新的节点池。现在新节点池的版本更高(与控制平面相同)。然后为其添加标签,例如nodePool=newNodePool.
将所有应用程序修补到新节点池。 (通过节点选择器)
$ kubectl get deployment -n {namespace} -o name | xargs kubectl patch -p "{\"spec\":{\"template\":{\"spec\":{\"nodeSelector\":{\"nodePool\":\"newNodePool\"}}}}}" -n {namespace}
检查pods是否被安排到新的节点池。
$ kubectl get pods -owide
删除旧的节点池。