Разверните расширение подключенного реестра Arc

Из этой статьи вы узнаете, как развернуть подключенное расширение реестра в кластере Kubernetes с поддержкой Arc с помощью Azure CLI.

Функция связанного реестра контейнеров Azure позволяет эффективно управлять контейнеризованными рабочими нагрузками, как в локальных условиях, так и на удаленных площадках. Развертывание расширения подключенного реестра Arc в кластерах Kubernetes с поддержкой Arc упрощает управление и доступ к этим рабочим нагрузкам.

Предпосылки

Разверните расширение подключенного реестра в кластере Kubernetes с поддержкой Arc

Развернув расширение Arc для подключенного реестра, вы можете синхронизировать образы контейнеров и другие артефакты Open Container Initiative (OCI) с реестром ACR. Развертывание помогает ускорить доступ к артефактам реестра и позволяет создавать расширенные сценарии. Развертывание расширения обеспечивает безопасное распределение доверия между подключенным реестром и всеми клиентскими узлами в кластере и устанавливает службу cert-manager для шифрования TLS.

Дополнительные сведения о развертывании расширений в кластерах Kubernetes с поддержкой Azure Arc см. в статье "Развертывание и управление расширением кластера Kubernetes с поддержкой Azure Arc".

Создание строки подключения и защищенных параметров 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

Развертывание расширения подключенного реестра

Затем разверните подключенное расширение реестра в кластере Kubernetes с поддержкой Arc, ссылаясь на созданный JSON-файл. Используйте команду az k8s-extension create :

  az k8s-extension create --cluster-name myarck8scluster \ 
  --cluster-type connectedClusters \
  --extension-type Microsoft.ContainerRegistry.ConnectedRegistry \
  --name myconnectedregistry \
  --resource-group myresourcegroup \ 
  --config service.clusterIP=192.100.100.1 \ 
  --config-protected-file protected-settings-extension.json  
  --auto-upgrade-minor-version true

clusterIP должен быть из диапазона IP-адресов подсети кластера. Параметр service.clusterIP задает IP-адрес подключенной службы реестра в кластере. Убедитесь, что указанный вами IP-адрес для service.clusterIP попадает в назначенный диапазон IP-адресов службы, определенный во время начальной конфигурации кластера, обычно находящийся в параметрах сети кластера. Если service.clusterIP не находится в этом диапазоне, обновите его на IP-адрес, который находится в допустимом диапазоне и в то же время не используется другой службой.

Подсказка

В этом примере можно включить автоматическое обновление для подключенного расширения реестра всякий раз, когда станет доступна новая версия. Если вы предпочитаете не выполнять автоматическое обновление, используйте --auto-upgrade-minor-version false.

Чтобы развернуть определенную версию подключенного расширения реестра, укажите параметр --version <version number> в командной строке с использованием команды az-k8s-extension-create.

Проверка развертывания расширения подключенного реестра

Чтобы проверить развертывание подключенного расширения реестра в кластере Kubernetes с поддержкой Arc, выполните команду az k8s-extension show , чтобы проверить состояние развертывания подключенного расширения реестра:

  az k8s-extension show 
  --name myconnectedregistry \ 
  --cluster-name myarck8scluster \
  --resource-group myresourcegroup \
  --cluster-type connectedClusters

Пример выходных данных см. в разделе "Показать сведения о расширении".

Затем для каждого подключенного реестра просмотрите состояние и состояние подключенного реестра с помощью команды az acr connected-registry list :

az acr connected-registry list --registry myacrregistry \
--output table

Выходные данные должны соответствовать следующему примеру.

    | NAME | MODE | CONNECTION STATE | PARENT | LOGIN SERVER | LAST SYNC(UTC) |
    |------|------|------------------|--------|--------------|----------------|
    | myconnectedregistry | ReadWrite | online | myacrregistry | myacrregistry.azurecr.io | 2026-01-09 12:00:00 |
    | myreadonlyacr | ReadOnly | offline | myacrregistry | myacrregistry.azurecr.io | 2026-01-09 12:00:00 |

Чтобы получить сведения о конкретном подключенном реестре, используйте команду az acr connected-registry show:

  az acr connected-registry show --registry myacrregistry \
  --name myreadonlyacr \ 
  --output table

Эта команда показывает выходные данные, аналогичные следующему примеру:

   | NAME                | MODE      | CONNECTION STATE | PARENT        | LOGIN SERVER             | LAST SYNC(UTC)      | SYNC SCHEDULE | SYNC WINDOW       |
   | ------------------- | --------- | ---------------- | ------------- | ------------------------ | ------------------- | ------------- | ----------------- |
   | myconnectedregistry | ReadWrite | online           | myacrregistry | myacrregistry.azurecr.io | 2026-01-09 12:00:00 | 0 0 * * *     | 00:00:00-23:59:59 |

Разверните pod, который использует образ из подключенного реестра

Чтобы развернуть модуль pod, использующий образ из подключенного реестра в кластере, выполните операцию с самого узла кластера.

  1. Выполните команду kubectl create secret docker-registry , чтобы создать секрет в кластере для проверки подлинности в подключенном реестре:

    kubectl create secret docker-registry regcred --docker-server=192.100.100.1 --docker-username=mytoken --docker-password=mypassword
    
  2. Разверните модуль pod, использующий нужный образ из подключенного реестра. В этом примере используется адрес 192.100.100.1 service.clusterIP и имя образа hello-world с меткой latest:

    kubectl apply -f - <<EOF
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: hello-world-deployment
      labels:
        app: hello-world
    spec:
      selector:
        matchLabels:
          app: hello-world
      replicas: 1
      template:
        metadata:
          labels:
            app: hello-world
        spec:
          imagePullSecrets:
            - name: regcred
          containers:
            - name: hello-world
              image: 192.100.100.1/hello-world:latest
    EOF
    

Очистите ресурсы

Если вы больше не хотите использовать подключенный реестр, удалите расширение из кластера Kubernetes с поддержкой Arc, а затем удалите подключенный ресурс реестра.

  1. Выполните команду az k8s-extension delete , чтобы удалить подключенное расширение реестра:

    az k8s-extension delete --name myconnectedregistry 
    --cluster-name myarcakscluster \ 
    --resource-group myresourcegroup \ 
    --cluster-type connectedClusters
    
  2. Выполните команду az acr connected-registry delete , чтобы удалить подключенный ресурс реестра:

    az acr connected-registry delete --registry myacrregistry \
    --name myconnectedregistry \
    --resource-group myresourcegroup