Невозможно получить доступ к приложению, развернутому в кластере kubernetes

Я получаю следующую ошибку при доступе к приложению, развернутому в службе 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, но я не знаю, что именно не так и где мне следует внести изменения.

Вы подключаетесь от клиента без каких-либо сертификатов?

Nicola Ben 10.09.2018 11:27

@NicolaBen Я подключаюсь через браузер. приложение представляет собой базовый сервер nodejs. Что касается сертификатов, я понятия не имею, где их настраивать

Preetam 10.09.2018 11:33

На каком этапе вы получаете ошибку?

Charles Xu 10.09.2018 11:56

не могли бы вы предоставить свои манифесты Service и Ingress?

Konstantin Vustin 10.09.2018 12:52

@ CharlesXu-MSFT Приложение успешно развернуто. Я получаю ошибку при доступе к приложению simplegrap-agh-rgp-bangalor-ae1cfc-fac72fa1.hcp.southeastasi‌ a.azmk8s.io Это мой файл развертывания gist.github.com/preetb123/d5f895d9505e79e2d5d077f47e1f9bb2

Preetam 10.09.2018 12:54

Если изображение работает хорошо и может получить доступ локально. Теперь вы должны проверить балансировщик нагрузки или входящий трафик, который вы используете, и работает ли ваша служба.

Charles Xu 11.09.2018 08:10

@ CharlesXu-MSFT Он отлично работает при запуске в локальном кластере кубернетов на моей машине. только когда он развернут в AKS, я получаю эту ошибку.

Preetam 11.09.2018 09:33

Вы проверяете, получаете ли вы доступ к нужному порту и адресу?

Charles Xu 11.09.2018 09:38

@ CharlesXu-MSFT да. gist.github.com/preetb123/d5f895d9505e79e2d5d077f47e1f9bb2. Это как-то связано с RBAC. Здесь есть некоторая информация, но я не понимаю, как интегрировать это в проект. docs.microsoft.com/en-us/azure/container-registry/…. Действительно застрял на этом много дней.

Preetam 11.09.2018 11:16

Это проверка подлинности реестра при извлечении или отправке образа. Если вы хотите использовать его при создании модуля из образа в реестре, вы можете прочитать этот ссылка.

Charles Xu 11.09.2018 11:31

@ CharlesXu-MSFT Я могу успешно отправить образ в ACR, создать AKS и развернуть приложение. Я вижу созданные развертывания, а также 3 запущенных узла, но не могу получить доступ к приложению $ kubectl get deployments ИМЯ ЖЕЛАЕМЫЙ ТЕКУЩИЙ АКТУАЛЬНЫЙ ВОЗРАСТ ДОСТУПНЫЙ ВОЗРАСТ gql-server-deployment 3 4 1 3 4d

Preetam 11.09.2018 13:23
0
11
610
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Просто следуйте инструкциям в опубликованном вами ссылка. Вам удастся это закончить. Назначение каждого шага ниже:

  1. Создайте образ и убедитесь, что он работает без ошибок.
  2. Создайте реестр контейнеров Azure и вставьте образ в реестр.
  3. Создайте субъект-службу для AKS, чтобы он мог просто извлекать образ из реестра.
  4. Измените файл yaml и заставьте его извлекать изображение из реестра Azure, а затем складывать модули в узлы AKS.

Вам просто понадобятся эти четыре шага для запуска приложения на AKS. Затем получите IP-адрес с помощью команды kubectl get service azure-vote-front --watch, как в шаге 4. Если вы не можете получить доступ к приложению, еще раз внимательно проверьте свои действия.

Также вы можете проверить состояние всех модулей с помощью команды kubectl describe pods или одного модуля с помощью kubectl describe pod podName.

Обновлять

Я тестирую изображение, которое вы предоставили, и результат здесь:

enter image description here

И вы можете получить служебную информацию и узнать, какой порт вам следует использовать для просмотра.

enter image description here

Я выполнил все шаги точно так же, как указано в статье. Кроме того, те же шаги даны в курсе pluralsight.com/courses/azure-container-service-big-picture, и я сделал то же самое.

Preetam 12.09.2018 11:45

@Preetam Все шаги вам подходят. Может проблема в вашем имидже. Не могли бы вы предоставить изображение для теста?

Charles Xu 13.09.2018 10:56

@Preetam Я думаю, что с портом, который вы выставляете, что-то не так. Вы можете проверить информацию с помощью команды kubectl describe services gql-server-service.

Charles Xu 13.09.2018 11:11

Я загрузил изображение в Docker Hub hub.docker.com/r/preetb123/simple-graphql-server, приложение отображается на порту 4000.

Preetam 18.09.2018 08:38

Я не могу вытащить изображение. Вы пробуете это?

Charles Xu 18.09.2018 08:48

используйте это: docker pull preetb123 / simple-graphql-server: v1

Preetam 18.09.2018 09:36

использование extenal-ip с портом работает (хотя я не пробовал раньше, я пробовал только с ip, а не ip: port. Только с IP я получал тайм-аут соединения), но я хочу, чтобы он работал с api-server-address который появляется в кластере акселератора на лазурном портале, как показано на изображении user-images.githubusercontent.com/4496555/…

Preetam 18.09.2018 12:04

@Preetam Это адрес сервера API. Не то, чтобы вы использовали для просмотра. Найдите реальную группу ресурсов, в которой находятся узлы кластера Azure Kuberbetes. Имя группы должно быть MC_aksGroupName_aksName_location.

Charles Xu 18.09.2018 15:34

Другие вопросы по теме