小编Der*_*rek的帖子

非标准资源组中的 Azure AKS 公共 IP

我一直在尝试通过 Terraform 管理 Azure Kubernetes 服务 (AKS) 实例。当我按照本 MS 教程通过 Azure CLI 创建 AKS 实例,然后按照本 MS 教程安装具有静态公共 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 状态无限期地保持为“<pending>”,我在任何日志中都找不到任何有关原因的信息。是否有日志可以告诉我为什么我的 IP 仍处于待处理状态?

再次,我相当确定,除了 SP 之外,Terraform AKS 集群是基于 MS 教程创建的集群的精确副本。运行terraform plan发现两者没有区别。有谁知道我的 AKS SP 可能需要什么权限或者我在这里可能还缺少什么?奇怪的是,我找不到通过 Azure 门户分配给隐式创建的主体的任何权限,但我想不出任何其他可能导致此行为的原因。

不确定这是否是一个转移注意力的问题,但其他用户在针对第二个教程提出的问题中抱怨了类似的问题。他们的修复似乎总是“拆除集群并重试”,但这在这种情况下不是可接受的解决方案。我需要一个可重现的工作集群,并且azurerm_kubernetes_cluster目前不允许使用隐式创建的 SP 构建 AKS 实例。

azure terraform service-principal terraform-provider-azure azure-aks

7
推荐指数
1
解决办法
4127
查看次数