【发布时间】:2019-09-30 11:04:12
【问题描述】:
我一直在尝试通过 Terraform 管理 Azure Kubernetes 服务 (AKS) 实例。当我根据this MS tutorial 通过 Azure CLI 创建 AKS 实例,然后根据this MS tutorial 安装具有静态公共 IP 的入口控制器时,一切正常。此方法隐式创建服务主体 (SP)。
当我通过 Terraform 创建 AKS 集群的其他完全相同的副本时,我不得不明确地提供服务主体。我让这个新的 SP“贡献者”访问集群的整个资源组,但当我开始创建入口控制器的步骤时(使用上面教程 2 提供的相同命令:helm install stable/nginx-ingress --set controller.replicaCount=2 --set controller.service.loadBalancerIP="XX.XX.XX.XX"),入口服务出现但它从未获得其公共 IP。 IP 状态无限期地保持“
再次,我相当肯定,除了 SP,Terraform AKS 集群与基于 MS 教程创建的集群完全相同。运行terraform plan 发现两者之间没有区别。有谁知道我的 AKS SP 可能需要什么权限,或者我在这里可能缺少什么?奇怪的是,我找不到通过 Azure 门户分配给隐式创建的主体的任何权限,但我想不出任何其他可能导致这种行为的东西。
不确定这是否是一个红鲱鱼,但其他用户在针对第二个教程打开的问题的上下文中抱怨了类似的问题。他们的修复似乎总是“拆除集群并重试”,但在这种情况下,这不是一个可接受的解决方案。我需要一个可重现的工作集群,azurerm_kubernetes_cluster 目前不允许使用隐式创建的 SP 构建 AKS 实例。
【问题讨论】:
-
您可以标记您的答案以帮助其他会员。
标签: azure terraform azure-aks terraform-provider-azure service-principal