Azure CLI创建集成应用网关的AKS时如何查看底层创建配置
问题背景
目前正在逆向拆解一段Azure CLI创建AKS的命令,目标是将其全套逻辑完整迁移到Terraform,对应的原CLI命令为:
az aks create --resource-group "..." --name "..." \ --network-plugin azure \ --enable-managed-identity \ -a ingress-gateway --appgw-name "myAksGateway" --appgw-subnet-id "..." \ --node-vm-size "..." \ --service-cidr "..." \ --vnet-subnet-id "..." \ --docker-bridge-address "..." \ --dns-service-ip "..." \ --generate-ssh-keys
当前进展:除了Application Gateway Ingress Controller(AGIC)的集成配置部分,其余参数的迁移和验证都已完成。
核心诉求与限制:
- 希望找到方法获取Azure CLI执行上述命令时,底层向Azure API提交的全量配置数据;已确认
az aks create没有内置dry run选项 - 受资源配额限制,无法直接运行带
--debug参数的命令抓取请求详情;常规AKS资源查询返回的基础JSON输出粒度太粗,无法满足排查精度要求 - Azurerm Provider提供的Kubernetes集群基础配置、Application Gateway资源配置的逻辑框架都很清晰,但自行编写的Terraform配置和CLI的实际执行逻辑存在参数偏差,手动梳理差异的排查效率很低,需要精准对齐CLI的底层配置才能消除偏差。
对应解决方法
在不实际创建资源、不占用配额的前提下,可以通过以下方式拿到CLI的全量配置逻辑:
- 使用CLI内置的参数导出能力,完全不触发创建请求:在原有命令末尾追加
--save-params aks-create-config.json参数,执行后CLI会在本地完成参数到ARM模板的映射转换,把所有CLI自动补全的默认配置、AGIC集成时的隐式配置全部写入本地json文件,全程不会向Azure发起实际的资源创建请求,完全不会消耗配额。导出的文件会包含所有需要的配置细节,比如CLI会自动为托管标识分配的应用网关访问权限、AGIC插件的启动参数、网络配置的隐式校验规则。 - 对照Azure CLI开源的参数处理逻辑反推映射关系:Azure CLI的AKS模块代码是完全开源的,可以直接查看AGIC相关参数的处理分支,也就是
-a ingress-gateway、--appgw-name、--appgw-subnet-id这几个参数对应的代码逻辑,里面会清晰标注CLI自动完成的配置动作,比如会自动检查子网的委托关系、自动为托管标识绑定角色权限、自动创建应用网关的基础路由配置,这些都是在Terraform里需要手动复刻的逻辑,不会出现偏差。 - 参考公开的同场景部署配置样本:官方公开的AGIC与AKS集成的参考部署样本,对应的完整配置结构是公开可查的,可以直接对照样本里的参数结构,和自行编写的Terraform配置逐行对齐,不需要依赖实际运行命令抓日志。
内容的提问来源于stack exchange,提问作者el n00b
相关产品推荐
相关产品推荐

