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

如何从运行中的Azure AKS集群导出完整YAML配置文件

首先需要明确两个不同维度的配置差异:

Azure门户「导出模板」得到的是AKS集群作为Azure资源的ARM(Azure Resource Manager)配置,属于Azure云资源层面的定义;而kubectl导出的是AKS集群内部运行的Kubernetes原生资源(Deployment、Service、ConfigMap等)配置,二者覆盖的内容范围完全不同。

一、获取与门户导出模板内容一致的YAML格式配置

这部分能力不属于kubectl的功能范围,kubectl仅负责和Kubernetes集群的API server交互,无法读取Azure资源层面的配置,需要用Azure CLI完成操作:

  • 首先完成Azure CLI登录并切换到对应订阅
    az login
    az account set --subscription <你的订阅ID>
    
  • 导出指定AKS集群的ARM模板JSON文件
    az group export --resource-group <AKS所在资源组名称> --resource-names <AKS集群名称> > aks-arm.json
    
  • 用JSON转YAML工具将导出的JSON转换为YAML格式,比如使用yq工具可以直接完成转换:
    yq -P aks-arm.json > aks-arm.yaml
    
    转换后的YAML文件和门户导出的JSON模板内容完全一致。

二、用kubectl导出AKS集群内部Kubernetes资源的YAML

如果你需要的是集群内部运行的K8s资源配置,可以使用以下kubectl命令:

  • 导出指定命名空间下的所有资源
    kubectl get all -n <命名空间名称> -o yaml > namespace-resources.yaml
  • 导出集群全量命名空间的所有资源
    kubectl get all -A -o yaml > cluster-all-resources.yaml
  • 导出单个指定资源的配置
    kubectl get <资源类型,如deployment/service/configmap> <资源名称> -n <命名空间> -o yaml > single-resource.yaml
  • 导出干净可复用的资源配置(自动过滤集群生成的冗余字段)
    kubectl get <资源类型> <资源名称> -n <命名空间> -o yaml | yq 'del(.metadata.creationTimestamp, .metadata.resourceVersion, .metadata.uid, .status)' > clean-resource.yaml

注意:kubectl默认导出的YAML会包含大量集群运行时生成的状态字段,如果用于重新部署场景,建议过滤掉这类自动生成的冗余字段,避免部署时报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:36:03