Устранение неполадок с подключенным расширением реестра
В этой статье рассматриваются некоторые распространенные сообщения об ошибках, которые могут возникать при установке или обновлении подключенного расширения реестра для кластеров Kubernetes с поддержкой Arc.
Установка расширения подключенного реестра
Подключенное расширение реестра выпускается в виде диаграммы helm и устанавливается Helm V3. Все компоненты подключенного расширения реестра устанавливаются в пространстве имен подключенного реестра . Для проверки состояния расширения можно использовать следующие команды.
# get the extension status
az k8s-extension show --name <extension-name>
# check status of all pods of connected registry extension
kubectl get pod -n connected-registry
# get events of the extension
kubectl get events -n connected-registry --sort-by='.lastTimestamp'
Распространенные ошибки
Ошибка: невозможно повторно использовать имя, которое все еще используется
Эта ошибка означает, что указанное вами расширение уже существует. Если имя уже используется, необходимо использовать другое имя.
Ошибка: не удалось создать новое содержимое в подключенном к пространству имен реестра , так как оно завершается.
Эта ошибка возникает, когда операция удаления не завершена, а другая операция установки активируется. Вы можете запустить команду az k8s-extension show
, чтобы проверить статус подготовки расширения и убедиться, что расширение было удалено, прежде чем предпринимать другие действия.
Ошибка: не удалось выполнить скачивание, так как путь к диаграмме не найден
Эта ошибка возникает при указании неправильной версии расширения. Необходимо убедиться, что указанная версия существует. Если вы хотите использовать последнюю версию, вам не нужно указывать --version
.
Распространенные сценарии
Сценарий 1. Установка завершается сбоем, но не отображает сообщение об ошибке
Если расширение создает сообщение об ошибке при создании или обновлении, можно проверить, где не удалось создать, выполнив az k8s-extension list
команду:
az k8s-extension list \
--resource-group <my-resource-group-name> \
--cluster-name <my-cluster-name> \
--cluster-type connectedClusters
Решение. Перезапустите кластер, зарегистрируйте поставщика услуг или удалите и переустановите подключенный реестр.
Чтобы устранить эту проблему, попробуйте выполнить следующие методы:
Перезапустите кластер Arc Kubernetes.
Зарегистрируйте поставщика услуг KubernetesConfiguration.
Принудительное удаление и переустановка подключенного расширения реестра.
Сценарий 2. Целевая версия подключенного реестра не существует
При попытке установить подключенное расширение реестра для целевой версии вы получите сообщение об ошибке, которое указывает, что подключенная версия реестра не существует.
Решение. Установка еще раз для поддерживаемой версии подключенного реестра
Повторите попытку установки расширения. Убедитесь, что используется поддерживаемая версия подключенного реестра.
Распространенные проблемы
Проблема: создание расширения зависло в состоянии выполнения
Возможность 1. Проблема с утверждением постоянного тома (ПВХ)
- Проверка состояния подключенного реестра ПВХ
kubectl get pvc -n connected-registry -o yaml connected-registry-pvc
Значение этапа в состоянии должно быть привязано. Если оно не изменится с ожидающего, удалите расширение.
- Проверьте, находится ли нужный класс хранилища в списке классов хранилища:
kubectl get storageclass --all-namespaces
- В противном случае повторно создайте расширение и добавьте
--config pvc.storageClassName=”standard”`
- Кроме того, это может быть проблема с отсутствием достаточного места для ПВХ. Повторное создание расширения с помощью параметра
--config pvc.storageRequest=”250Gi”`
Возможность 2. Строка подключения плоха
- Проверьте журналы для подключенного модуля pod реестра:
kubectl get pod -n connected-registry
- Скопируйте имя подключенного модуля реестра (например, "connected-registry-8d886cf7f-w4prp") и вставьте его в следующую команду:
kubectl logs -n connected-registry connected-registry-8d886cf7f-w4prp
- Если отображается следующее сообщение об ошибке, строка подключения подключенного реестра плохо:
Response: '{"errors":[{"code":"UNAUTHORIZED","message":"Incorrect Password","detail":"Please visit https://aka.ms/acr#UNAUTHORIZED for more information."}]}'
- Убедитесь, что создан файл protected-settings-extension.json
cat protected-settings-extension.json
- При необходимости повторно создайте protected-settings-extension.json
cat << EOF > protected-settings-extension.json
{
"connectionString": "$(az acr connected-registry get-settings \
--name myconnectedregistry \
--registry myacrregistry \
--parent-protocol https \
--generate-password 1 \
--query ACR_REGISTRY_CONNECTION_STRING --output tsv --yes)"
}
EOF
- Обновите расширение, чтобы включить новый строка подключения
az k8s-extension update \
--cluster-name <myarck8scluster> \
--cluster-type connectedClusters \
--name <myconnectedregistry> \
-g <myresourcegroup> \
--config-protected-file protected-settings-extension.json
Проблема: расширение создано, но подключенный реестр не является состоянием "Online"
Возможность 1. Предыдущий подключенный реестр не отключен
Этот сценарий обычно происходит при удалении предыдущего подключенного расширения реестра и создании нового для того же подключенного реестра.
- Проверьте журналы для подключенного модуля pod реестра:
kubectl get pod -n connected-registry
- Скопируйте имя подключенного модуля реестра (например, "connected-registry-xxxx-xxxx") и вставьте его в следующую команду:
kubectl logs -n connected-registry connected-registry-xxxxxxxxx-xxxxx
- Если отображается следующее сообщение об ошибке, подключенный реестр необходимо отключить:
Response: '{"errors":[{"code":"ALREADY_ACTIVATED","message":"Failed to activate the connected registry as it is already activated by another instance. Only one instance is supported at any time.","detail":"Please visit https://aka.ms/acr#ALREADY_ACTIVATED for more information."}]}'
- Выполните следующую команду, чтобы отключить:
az acr connected-registry deactivate -n <myconnectedregistry> -r <mycontainerregistry>
Через несколько минут необходимо повторно создать подключаемый модуль реестра, и ошибка должна исчезнуть.
Включение ведения журналов
- Выполните команду [az acr connected-registry update], чтобы обновить подключенное расширение реестра с уровнем журнала отладки:
az acr connected-registry update --registry mycloudregistry --name myacrregistry --log-level debug
Для устранения неполадок можно применить следующие уровни журналов:
Отладка предоставляет подробные сведения для целей отладки.
Сведения содержат общие сведения для отладки.
Предупреждение указывает на потенциальные проблемы, которые еще не являются ошибками, но могут стать одним, если никаких действий не предприняно.
Журналы ошибок , которые препятствуют завершению операции.
Ни один из них не отключает ведение журнала, поэтому сообщения журнала не записываются.
Настройте уровень журнала по мере необходимости, чтобы устранить проблему.
Активный выбор предоставляет дополнительные возможности для настройки детализации журналов при отладке проблем с подключенным реестром. Имеются следующие варианты:
Уровень журнала подключенного реестра зависит от операций подключенного реестра и определяет серьезность сообщений, которые обрабатывает подключенный реестр. Этот параметр используется для управления поведением ведения журнала подключенного реестра.
--log-level задает уровень журнала на экземпляре. Уровень журнала определяет серьезность сообщений, которые обрабатывает средство ведения журнала. Задав уровень журнала, можно отфильтровать сообщения, которые ниже определенной серьезности. Например, если задать для уровня журнала значение "предупреждение", средство ведения журнала обрабатывает предупреждения, ошибки и критически важные сообщения, но игнорирует сведения и отладочные сообщения.
Az cli log level управляет детализацией выходных сообщений во время работы Azure CLI. Azure CLI (az) предоставляет несколько параметров детализации для уровней журнала, которые можно настроить для управления объемом выходных данных во время его работы:
--verbose увеличивает детализацию журналов. Он предоставляет более подробные сведения, чем параметр по умолчанию, который может быть полезен для выявления проблем.
-- debug включает полные журналы отладки. Журналы отладки предоставляют самые подробные сведения, включая все сведения, предоставленные на уровне "подробных" и дополнительные сведения, предназначенные для диагностики проблем.