Я получаю следующую ошибку при доступе к приложению, развернутому в службе Azure kubernetes
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {},
"status": "Failure",
"message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
"reason": "Forbidden",
"details": {},
"code": 403
}
Я выполнил все шаги, указанные здесь https://docs.microsoft.com/en-us/azure/aks/tutorial-kubernetes-prepare-app
Я знаю, что это как-то связано с аутентификацией и RBAC, но я не знаю, что именно не так и где мне следует внести изменения.
@NicolaBen Я подключаюсь через браузер. приложение представляет собой базовый сервер nodejs. Что касается сертификатов, я понятия не имею, где их настраивать
На каком этапе вы получаете ошибку?
не могли бы вы предоставить свои манифесты Service
и Ingress
?
@ CharlesXu-MSFT Приложение успешно развернуто. Я получаю ошибку при доступе к приложению simplegrap-agh-rgp-bangalor-ae1cfc-fac72fa1.hcp.southeastasi a.azmk8s.io Это мой файл развертывания gist.github.com/preetb123/d5f895d9505e79e2d5d077f47e1f9bb2
Если изображение работает хорошо и может получить доступ локально. Теперь вы должны проверить балансировщик нагрузки или входящий трафик, который вы используете, и работает ли ваша служба.
@ CharlesXu-MSFT Он отлично работает при запуске в локальном кластере кубернетов на моей машине. только когда он развернут в AKS, я получаю эту ошибку.
Вы проверяете, получаете ли вы доступ к нужному порту и адресу?
@ CharlesXu-MSFT да. gist.github.com/preetb123/d5f895d9505e79e2d5d077f47e1f9bb2. Это как-то связано с RBAC. Здесь есть некоторая информация, но я не понимаю, как интегрировать это в проект. docs.microsoft.com/en-us/azure/container-registry/…. Действительно застрял на этом много дней.
Это проверка подлинности реестра при извлечении или отправке образа. Если вы хотите использовать его при создании модуля из образа в реестре, вы можете прочитать этот ссылка.
@ CharlesXu-MSFT Я могу успешно отправить образ в ACR, создать AKS и развернуть приложение. Я вижу созданные развертывания, а также 3 запущенных узла, но не могу получить доступ к приложению $ kubectl get deployments ИМЯ ЖЕЛАЕМЫЙ ТЕКУЩИЙ АКТУАЛЬНЫЙ ВОЗРАСТ ДОСТУПНЫЙ ВОЗРАСТ gql-server-deployment 3 4 1 3 4d
Просто следуйте инструкциям в опубликованном вами ссылка. Вам удастся это закончить. Назначение каждого шага ниже:
Вам просто понадобятся эти четыре шага для запуска приложения на AKS. Затем получите IP-адрес с помощью команды kubectl get service azure-vote-front --watch
, как в шаге 4. Если вы не можете получить доступ к приложению, еще раз внимательно проверьте свои действия.
Также вы можете проверить состояние всех модулей с помощью команды kubectl describe pods
или одного модуля с помощью kubectl describe pod podName
.
Обновлять
Я тестирую изображение, которое вы предоставили, и результат здесь:
И вы можете получить служебную информацию и узнать, какой порт вам следует использовать для просмотра.
Я выполнил все шаги точно так же, как указано в статье. Кроме того, те же шаги даны в курсе pluralsight.com/courses/azure-container-service-big-picture, и я сделал то же самое.
@Preetam Все шаги вам подходят. Может проблема в вашем имидже. Не могли бы вы предоставить изображение для теста?
@Preetam Я думаю, что с портом, который вы выставляете, что-то не так. Вы можете проверить информацию с помощью команды kubectl describe services gql-server-service
.
Я загрузил изображение в Docker Hub hub.docker.com/r/preetb123/simple-graphql-server, приложение отображается на порту 4000.
Я не могу вытащить изображение. Вы пробуете это?
используйте это: docker pull preetb123 / simple-graphql-server: v1
использование extenal-ip с портом работает (хотя я не пробовал раньше, я пробовал только с ip, а не ip: port. Только с IP я получал тайм-аут соединения), но я хочу, чтобы он работал с api-server-address который появляется в кластере акселератора на лазурном портале, как показано на изображении user-images.githubusercontent.com/4496555/…
@Preetam Это адрес сервера API. Не то, чтобы вы использовали для просмотра. Найдите реальную группу ресурсов, в которой находятся узлы кластера Azure Kuberbetes. Имя группы должно быть MC_aksGroupName_aksName_location.
Вы подключаетесь от клиента без каких-либо сертификатов?