Рейтинг:0

Сбой контроллера входа Kubernetes NGINX при использовании Helm на AKS

флаг in

При настройке входного контроллера K8, который задокументирован здесь

Я не могу пройти этап «Создать контроллер входящего трафика». На шаге команды Helm и переводе команды в режим отладки я вижу тайм-аут на одном из шагов:

неудачная предварительная установка: истекло время ожидания условия

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

Не удалось извлечь изображение "myregistry.azurecr.io/jettech/kube-webhook-certgen:v1.5.1@sha256:...90bd8068": [ошибка rpc: code = NotFound desc = не удалось извлечь и распаковать изображение "... .azurecr.io/jettech/kube-webhook-certgen@sha256:....9b9e90bd8068": не удалось разрешить ссылку "myregistry.azurecr.io/jettech/kube-webhook-certgen@sha256:...190b1dcbcb9b9e90bd8068": . ...azurecr.io/jettech/kube-webhook-certgen@sha256:...9b9e90bd8068: не найдено, ошибка rpc: code = Unknown desc = не удалось извлечь и распаковать образ "myregistry.azurecr.io/jettech/kube- webhook-certgen@sha256:...dcbcb9b9e90bd8068": не удалось разрешить ссылку "myregistry.azurecr.io/jettech/kube-webhook-certgen@sha256:...b9b9e90bd8068": не удалось авторизоваться: не удалось получить анонимный токен: неожиданно статус: 401 Неавторизованный]

Я проверил, что образы расположены в реестре контейнеров на основе команды «az acr import», и что если я выполню стандартное развертывание K8 с помощью «kubectl», k8 сможет подключиться к файлу acr. Я также проверил соединение между кластером и реестром, используя следующую команду, она работает как положено:

az aks check-acr -n <кластер> -g <rg> --acr <acr>

Эта ошибка возникает только при использовании команды helm.

РЕДАКТИРОВАТЬ

Изучив это больше, я нашел следующую статью

https://stackoverflow.com/questions/68949434/installing-nginx-ingress-controller-into-aks-cluster-cant-pull-image-from-azu

Похоже, проблема с дайджестом. Я добавил/заменил следующее в команде helm:

--set controller.image.digest="sha256:e9fb216ace49dfa4a5983b183067e97496e7a8b307d2093f4278cd550c303899" \
--set controller.admissionWebhooks.patch.image.digest="sha256:950833e19ade18cd389d647efb88992a7cc077abedef343fa59e012d376d79b7" \

Однако при выполнении модифицированной команды helm POD находятся в состоянии ошибки со следующей ошибкой

неизвестный флаг: --controller-class

Я попытался установить переменную env CONTROLLER_TAG=v1.0.0, как описано в статье, но это не помогает.

Другое решение — установить номер версии: 3.36.0 в команде. Это успешно, но требуется более ранняя версия

Рейтинг:1
флаг in

После обращения к отзывам сайта документов MS они предоставили мне следующее исправление для этого документа.

https://github.com/MicrosoftDocs/azure-docs/issues/80321

После отката и повторного применения измененных изменений команда выполнена успешно. Ключ был в том, чтобы удалить pod с помощью команды helm uninstall:

helm удалить nginx-ingress --namespace ingress-basic

Затем удалите репозитории ACR из вашего ACR:

jettech/kube-webhook-certgen
по умолчаниюbackend-amd64
jetstack/сертификат-менеджер-контроллер
jetstack/cert-manager-webhook
jetstack/cert-manager-cainjector

которые были созданы с помощью команды «az acr import» с последующим повторным запуском измененных команд.

Надеюсь, кто-то найдет это ценным

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.