培训
学习路径
将 Linux 和 PostgreSQL 工作负荷迁移到 Azure - Training
使用 Azure 虚拟机和 Azure Database for PostgreSQL 将 Linux 和 PostgreSQL 工作负荷迁移到 Azure。
你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在本教程(五部分的第三部分)中,你将现有节点迁移到 Azure Linux。 可以使用以下方法之一将现有节点迁移到 Azure Linux:
如果没有任何现有节点要迁移到 Azure Linux,请跳到下一教程。 在后面的教程中,你将了解如何在群集中启用遥测和监视,以及如何升级 Azure Linux 节点。
在前面的教程中,你创建并部署了适用于 AKS 的 Azure Linux 容器主机群集。 若要完成本教程,需要将 Azure Linux 节点池添加到现有群集。 如果尚未完成此步骤并想要继续操作,请从教程 2:将 Azure Linux 节点池添加到现有 AKS 群集开始。
备注
添加新的 Azure Linux 节点池时,需要将其中至少一个添加为 --mode System
。 否则,AKS 不允许删除现有节点池。
需要最新版本的 Azure CLI。 运行 az --version
即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI。
使用 az aks nodepool add
命令添加新的 Azure Linux 节点池。 此命令使用 --mode System
标志将新的节点池添加到群集,使其成为系统节点池。 Azure Linux 群集需要系统节点池。
az aks nodepool add --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --mode System --os-sku AzureLinux
使用 az aks nodepool delete
命令移除现有节点。
az aks nodepool delete --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name>
现在,你可以通过更改节点池的 OS SKU(这会通过标准节点映像升级过程来滚动群集)将现有 Ubuntu 节点池迁移到 Azure Linux。 此新功能不需要创建新的节点池。
有几个设置会阻止 OS SKU 迁移请求。 若要确保迁移成功,请查看以下准则和限制:
UseGPUDedicatedVHD
的 Ubuntu OS SKU 无法执行 OS SKU 迁移。az --version
即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI。使用 az aks nodepool update
命令将节点池的 OS SKU 迁移到 Azure Linux。 此命令将节点池的 OS SKU 从 Ubuntu 更新为 Azure Linux。 OS SKU 更改会触发即时升级操作,这需要几分钟才能完成。
az aks nodepool update --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --os-sku AzureLinux
备注
如果在 OS SKU 迁移过程中遇到问题,可以回滚到以前的 OS SKU。
在测试群集上完成迁移后,应验证以下内容以确保迁移成功:
kubectl get nodes -o wide
命令。 输出应当将 CBL-Mariner/Linux
显示为你的 OS 映像,并且在你的内核版本的末尾显示 .cm2
。kubectl get pods -o wide -A
命令,验证是否所有 Pod 和守护程序集都在新节点池上运行。kubectl get nodes --show-labels
命令,验证升级的节点池中的所有节点标签是否符合预期。提示
建议在迁移生产群集之前连续数周监视你的服务的运行状况。
OSSKU=AzureLinux
。 在 ARM 模板中,请在 agentPoolProfile
部分中使用 "OSSKU: "AzureLinux"
。 在 Bicep 中,请在 agentPoolProfile
部分中使用 osSku: "AzureLinux"
。 最后,对于 Terraform,在 default_node_pool
部分中使用 "os_sku = "AzureLinux"
。 确保将 apiVersion
设置为 2023-07-01
或更高版本。OSSKU
设置。 在此部署期间,群集的行为就像正在升级节点映像一样。 你的群集激增容量,然后从新的 OS SKU 将现有节点逐个重启到最新的 AKS 映像中。如果在 OS SKU 迁移过程中遇到问题,可以回滚到以前的 OS SKU。 为此,你需要更改模板中的 OS SKU 字段并重新提交部署,这会触发另一个升级操作并将节点池还原到其以前的 OS SKU。
备注
OS SKU 迁移不支持回滚到 OS SKU Mariner。
使用 az aks nodepool update
命令回滚到以前的 OS SKU。 此命令将节点池的 OS SKU 从 Azure Linux 回滚为 Ubuntu。
az aks nodepool update --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --os-sku Ubuntu
在本教程中,你使用以下方法之一将现有节点迁移到了 Azure Linux:
在下一教程中,你将了解如何启用遥测来监视群集。
培训
学习路径
将 Linux 和 PostgreSQL 工作负荷迁移到 Azure - Training
使用 Azure 虚拟机和 Azure Database for PostgreSQL 将 Linux 和 PostgreSQL 工作负荷迁移到 Azure。
文档
适用于 AKS 的 Azure Linux 容器主机教程 - 将 Azure Linux 节点池添加到现有 AKS 群集
该适用于 AKS 的 Azure Linux 容器主机教程介绍如何将 Azure Linux 节点池添加到现有群集。
适用于 AKS 的 Azure Linux 容器主机教程 - 升级 Azure Linux 容器主机节点
该适用于 AKS 的 Azure Linux 容器主机教程介绍如何升级 Azure Linux 容器主机节点。
适用于 AKS 的 Azure Linux 容器主机教程 - 创建群集
该适用于 AKS 的 Azure Linux 容器主机教程介绍如何使用 Azure Linux 创建 AKS 群集。