Я пытался управлять экземпляром службы Azure Kubernetes (AKS) через Terraform. Когда я создаю экземпляр AKS через Azure CLI согласно этому руководству MS, затем установите контроллер входящего трафика со статическим общедоступным IP-адресом на этот учебник по MS, все работает нормально. Этот метод неявно создает участника службы (SP).
Когда я создаю точную копию кластера AKS через Terraform, я вынужден явно указать принципала службы. Я предоставил этому новому SP "Contributor" доступ ко всей группе ресурсов кластера, но когда я перехожу к шагу по созданию контроллера входящего трафика (используя ту же команду, что и в руководстве 2 выше: helm install stable/nginx-ingress --set controller.replicaCount=2 --set controller.service.loadBalancerIP="XX.XX.XX.XX"
), служба входа появляется, но она никогда не получает публичный IP. Статус IP остается «‹ ожидающий »на неопределенный срок, и я не могу найти ни в одном журнале ничего о том, почему. Есть ли журналы, которые должны сообщить мне, почему мой IP-адрес все еще ожидает ответа?
Опять же, я вполне уверен, что, кроме SP, кластер Terraform AKS является точной копией кластера, созданного на основе учебника MS. Запуск terraform plan
не обнаруживает различий между ними. Кто-нибудь знает, какое разрешение может потребоваться моему AKS SP или чего еще мне здесь может не хватать? Как ни странно, я не могу найти ЛЮБЫЕ разрешения, назначенные неявно созданному участнику через портал Azure, но я не могу придумать ничего другого, что могло бы вызвать такое поведение.
Не уверен, отвлекающий маневр это или нет, но другие пользователи жаловались на аналогичную проблему в контексте проблем, связанных со вторым руководством. Их исправление всегда выглядит как «разорвите кластер и повторите попытку», но это неприемлемое решение в данном контексте. Мне нужен воспроизводимый рабочий кластер, а azurerm_kubernetes_cluster в настоящее время не позволяют создавать экземпляр AKS с неявно созданным SP.