You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Azure SDK for Python获取AKS可用Kubernetes最新版本

AKS版本查询与升级问题解决方法

1 返回结果无kubernetesVersion字段的原因

Azure Python SDK返回的升级配置对象为分层结构,目标字段没有挂载在返回结果的顶层属性中,需要从下层属性提取:

  • 当前集群运行的Kubernetes版本:存放在upgrade_profile.control_plane_profile.kubernetes_version
  • 控制平面可升级的版本列表:存放在upgrade_profile.control_plane_profile.upgrades列表中,列表内每个元素的kubernetes_version字段即为可用版本
  • 各工作节点池的对应版本可以从upgrade_profile.agent_pool_profiles列表中按节点池名称提取

2 修正后的版本查询代码

for resource in list(resource_list):
    if resource.type == "Microsoft.ContainerService/managedClusters":
        print("ResourceName:", resource.name, "ResourceType:", resource.type)
        containerservice_client = ContainerServiceClient(credential, sub.subscription_id)
        # 获取集群升级配置
        aks_upgrade_profile = containerservice_client.managed_clusters.get_upgrade_profile(group.name, resource.name)
        # 提取控制平面配置
        cp_profile = aks_upgrade_profile.control_plane_profile
        
        # 获取当前版本
        current_version = cp_profile.kubernetes_version
        print(f"当前集群Kubernetes版本:{current_version}")
        
        # 获取可升级版本列表,过滤预览版可根据需求调整判断逻辑
        available_versions = [upgrade.kubernetes_version for upgrade in cp_profile.upgrades if upgrade.kubernetes_version]
        if available_versions:
            # 按版本号规则排序取最新版本
            latest_version = sorted(available_versions, key=lambda x: [int(k) for k in x.split('.')], reverse=True)[0]
            print(f"可用升级版本:{available_versions}")
            print(f"最新可升级版本:{latest_version}")
        else:
            print("当前集群已为支持的最新版本,无需升级")

3 集群升级代码示例

拿到最新可用版本后,可以通过以下代码执行集群升级操作:

# 获取集群当前配置
aks_cluster = containerservice_client.managed_clusters.get(group.name, resource.name)
# 赋值要升级的目标版本
aks_cluster.kubernetes_version = latest_version
# 提交升级请求,异步等待执行完成
upgrade_operation = containerservice_client.managed_clusters.begin_create_or_update(
    resource_group_name=group.name,
    resource_name=resource.name,
    parameters=aks_cluster
)
upgrade_operation.wait()
print(f"AKS集群{resource.name}已成功升级到{latest_version}版本")

内容的提问来源于stack exchange,提问作者Matrix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:27:03