将 Azure Kubernetes 舰队管理器预览版实例迁移到受支持的状态
在 Azure Kubernetes 舰队管理器(Kubernetes 舰队)的预览版阶段,进行了内部自定义资源定义 (CRD) API 更改,这会影响服务公共预览版期间创建的少量 Kubernetes 舰队实例。
Microsoft 已通知受影响的 Kubernetes 舰队用户,告知他们使用本文来帮助识别受该更改影响的 Kubernetes 舰队实例。
表中显示了 Kubernetes 舰队自定义资源定义 (CRD) API 更改。
旧的 API 定义(不受支持) | 新的 API 定义(受支持) |
---|---|
memberclusters.fleet.azure.com/v1alpha1 | memberclusters.cluster.kubernetes-fleet.io/v1 |
internalmemberclusters.fleet.azure.com/v1alpha1 | internalmemberclusters.cluster.kubernetes-fleet.io/v1 |
自 2025 年 3 月起,旧的 API 定义不再获得支持或更新,会从平台部署中删除。
管理员若有受影响的 Kubernetes 舰队实例,则需要创建新的 Kubernetes 舰队实例并手动传输成员群集。 此为一次性活动。
先决条件
必须将
Azure Kubernetes Fleet Manager RBAC Cluster Admin
Entra ID 角色分配给执行此活动的用户。需要安装 Azure CLI 版本 2.61.0 或更高版本。 若要安装或升级,请参阅安装 Azure CLI。
你需要
fleet
Azure CLI 扩展版本 1.3.0 或更高版本,可以通过运行以下命令来实现安装:az extension add --name fleet
运行以下命令以更新到已发布的最新扩展版本:
az extension update --name fleet
识别受到影响的实例
设置正确的 Azure 订阅。 如果收到了来自 Microsoft 的通知,可在其中找到应使用的一个或多个订阅 ID。
az account set \ --subscription <subscription-id>
查找订阅中的所有 Kubernetes 舰队实例。
az resource list \ --resource-type 'Microsoft.ContainerService/fleets'
如果部署了多个 Kubernetes 舰队实例,则可以筛选出 2022 年或 2023 年创建的可能受影响的实例。 2024 年创建的实例不受影响。
az resource list \ --resource-type 'Microsoft.ContainerService/fleets' \ --query "[?contains(createdTime, '2023') || contains(createdTime, '2022')]"
如果上述查询返回任何匹配的实例,请根据后续步骤所述,判断这些实例是否正使用已停用的 Kubernetes CRD API。
下载适用于 Kubernetes 舰队中心群集的 Kubernetes 凭据。
az fleet get-credentials \ --resource-group <resource-group> \ --name <fleet-name>
查询 Kubernetes 舰队中心群集 Kubernetes API,判断是否部署了旧的 CRD 版本。
kubectl get crd memberclusters.fleet.azure.com kubectl get crd internalmemberclusters.fleet.azure.com
如果两个查询都返回
Error from server (NotFound) customresourcedefinitions.apiextensions.k8s.io
,则所选的 Kubernetes 舰队实例不会受到影响,也无需执行进一步操作。如果有任何实例受到影响,请参阅后续小节了解修正步骤。
修正受到影响的实例
如果发现任何受影响的 Kubernetes 舰队实例,则需执行以下步骤。
- 记录受影响 Kubernetes 舰队实例上定义的任何更新运行和群集资源放置规则。
- 从受影响的 Kubernetes 舰队实例中移除所有成员群集。
- 创建新的 Kubernetes 舰队管理器实例,再根据需要关联成员群集。
- 重新应用并验证从旧的 Kubernetes 舰队实例记录的任何配置。
- 删除旧的 Kubernetes 舰队实例。