Проверка подключения к реестру контейнеров
Этот материал входит в цикл статей. Начните с обзора.
Чтобы успешно развернуть контейнерные приложения в кластере Служба 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 возникают проблемы с проверкой подлинности и авторизацией, рассмотрите следующие решения:
- Проверьте конфигурацию Docker в вашей среде.
- Укажите правильное имя реестра.
- Проверьте учетные данные для доступа к реестру.
- Настройте общедоступный доступ к реестру.
- Устранение неполадок при входе в реестр.
- Убедитесь, что учетные данные еще действуют.
Устранение неполадок с производительностью
Если у вас возникли проблемы с производительностью в реестре контейнеров Azure, рассмотрите следующие решения:
- Включите кэш артефактов.
- Проверьте скорость сетевого подключения.
- Проверьте клиентское оборудование, которое может повлиять на скорость сжатия или извлечения слоя изображений.
- Просмотрите настроенные ограничения на уровне служб реестра или среде.
- Настройте геоизбыточное реестр реплика для оптимальной производительности с помощью реплика в близлежащих регионах.
- Оптимизация конфигурации DNS для извлечения из географически удаленного реестра реплика.
Эти руководства помогут обеспечить простое получение изображений для кластера AKS и обеспечить непрерывную работу рабочих нагрузок.
Интеграция сторонних реестров контейнеров
При использовании стороннего реестра контейнеров необходимо создать соответствующие ImagePullSecret
учетные данные для реестра, чтобы кластер AKS смог безопасно получить доступ к образам контейнеров. Дополнительные сведения см. в разделе "Создание секрета извлечения изображения". Убедитесь, что вы настроили правильные разрешения и учетные данные, чтобы проверить подключение к реестру контейнеров и включить кластер AKS для успешного извлечения необходимых образов контейнеров во время развертывания. Эта рекомендация помогает обеспечить плавное и надежное выполнение контейнерных рабочих нагрузок в Kubernetes.
Соавторы
Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участник.
Основные авторы:
- Паоло Сальватори | Главный инженер клиента
- Фрэнсис Сими Назарет | Старший технический специалист
Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.