Поделиться через


Проверка подключения к реестру контейнеров

Этот материал входит в цикл статей. Начните с обзора.

Чтобы успешно развернуть контейнерные приложения в кластере Служба Azure Kubernetes (AKS), необходимо проверить подключение между кластером и реестром контейнеров. На этом шаге гарантируется, что рабочие узлы имеют необходимые разрешения для извлечения необходимых образов контейнеров из реестра.

Выявление симптомов

Когда kubelet, работающий на узле агента, создает контейнеры для pod, один или несколько контейнеров могут оказаться в состоянии ожидания из-за ImagePullBackOff ошибки. ImagePullBackoff — это распространенное сообщение об ошибке в Kubernetes, которое указывает на сбой извлечения требуемого образа контейнера из общедоступного или частного реестра. Различные факторы могут вызвать эту ошибку, включая проблемы с сетевым подключением, неправильное имя изображения или тег, недостаточно разрешений или отсутствующие учетные данные.

Часть BackOff состояния означает, что Kubernetes постоянно пытается извлечь изображение с увеличением задержки между каждой последующей попыткой. Задержка постепенно увеличивается до тех пор, пока не достигнет предопределенного ограничения, которое обычно устанавливается на 300 секунд (5 минут) в Kubernetes.

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

Назначения ролей

При присоединении реестра контейнеров к существующему кластеру AKS роль AcrPull автоматически назначается реестру управляемому удостоверению Microsoft Entra, связанному с пулами агентов в кластере AKS. Дополнительные сведения см. в статье "Проверка подлинности с помощью реестра контейнеров" из AKS.

Выполните следующую команду, чтобы получить управляемое удостоверение kubelet кластера Kubernetes и его текущие назначения ролей:

# Get the kubelet managed identity.
ASSIGNEE=$(az aks show -g $RESOURCE_GROUP -n $NAME --query identityProfile.kubeletidentity.clientId -o tsv)
az role assignment list --assignee $ASSIGNEE --all -o table

Выполните следующую команду, чтобы назначить AcrPull роль управляемому удостоверению kubelet:

AZURE_CONTAINER_REGISTRY_ID=$(az acr show --name <container-registry-name> --query id --output tsv)
az role assignment create --assignee $ASSIGNEE --scope $AZURE_CONTAINER_REGISTRY_ID --role acrpull

Устранение неполадок с реестром контейнеров

В следующих разделах приведены руководства, которые можно использовать, если возникают проблемы с сетью, входом или производительностью в реестре контейнеров Azure.

Устранение неполадок сети

Если возникают проблемы, связанные с доступом к реестру контейнеров Azure в виртуальной сети или за брандмауэром или прокси-сервером, рассмотрите следующие решения:

Устранение проблем со входом

Если при входе в реестр контейнеров Azure возникают проблемы с проверкой подлинности и авторизацией, рассмотрите следующие решения:

Устранение неполадок с производительностью

Если у вас возникли проблемы с производительностью в реестре контейнеров Azure, рассмотрите следующие решения:

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

Интеграция сторонних реестров контейнеров

При использовании стороннего реестра контейнеров необходимо создать соответствующие ImagePullSecret учетные данные для реестра, чтобы кластер AKS смог безопасно получить доступ к образам контейнеров. Дополнительные сведения см. в разделе "Создание секрета извлечения изображения". Убедитесь, что вы настроили правильные разрешения и учетные данные, чтобы проверить подключение к реестру контейнеров и включить кластер AKS для успешного извлечения необходимых образов контейнеров во время развертывания. Эта рекомендация помогает обеспечить плавное и надежное выполнение контейнерных рабочих нагрузок в Kubernetes.

Соавторы

Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участник.

Основные авторы:

Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.

Следующие шаги