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


Краткое руководство. Развертывание расширения подключенного реестра Arc (предварительная версия)

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

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

Необходимые компоненты

  • Настройте Azure CLI для подключения к Azure и Kubernetes.

  • Создайте или используйте существующую Реестр контейнеров Azure (ACR) с кратким руководством.

  • Настройте доступ к брандмауэру и обмен данными между ACR и подключенным реестром, включив выделенные конечные точки данных.

  • Создайте или используйте существующий кластер Azure KubernetesService (AKS) с помощью учебника .

  • Настройте подключение между Kubernetescluster и Azure Arc, выполнив краткое руководство.

  • Используйте команду k8s-extension для управления Kubernetesextensions.

    az extension add --name k8s-extension
    
  • Зарегистрируйте необходимых поставщиков ресурсов Azure в подписке и используйте Kubernetes с поддержкой Azure Arc:

    az provider register --namespace Microsoft.Kubernetes
    az provider register --namespace Microsoft.KubernetesConfiguration
    az provider register --namespace Microsoft.ExtendedLocation
    

    Поставщик ресурсов Azure — это набор операций REST, которые обеспечивают функциональные возможности для определенной службы Azure.

  • Репозиторий в реестре ACR для синхронизации с подключенным реестром.

    az acr import --name myacrregistry --source mcr.microsoft.com/mcr/hello-world:latest --image hello-world:latest
    

    Репозиторий hello-world создается в реестре myacrregistry ACR для синхронизации с подключенным реестром.

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

После того как необходимые требования и необходимые условия и компоненты применяются, выполните упрощенный подход к безопасному развертыванию подключенного расширения реестра в кластере Kubernetes с поддержкой Arc с помощью следующих параметров. Эти параметры определяют следующую конфигурацию со службой HTTPS, "Только для чтения", "Распределение доверия" и "Диспетчер сертификатов". Выполните действия по успешному развертыванию:

  1. Создайте подключенный реестр.
  2. Разверните расширение подключенного реестра Arc.
  3. Проверьте развертывание подключенного расширения реестра.
  4. Разверните модуль pod, использующий образ из подключенного реестра.

Создание подключенного реестра и синхронизация с ACR

Создание подключенного реестра для синхронизации с ACR является основным шагом для развертывания расширения подключенного реестра Arc.

  1. Создайте подключенный реестр, который синхронизируется с реестром ACR:

    Чтобы создать подключенный реестр, синхронизированный с реестром ACR в группе myresourcegroup ресурсов и репозиторииhello-world, можно запустить команду az acr connected-registry create:myconnectedregistry myacrregistry

    az acr connected-registry create --registry myacrregistry \ 
    --name myconnectedregistry \
    --resource-group myresourcegroup \ 
    --repository "hello-world"
    
  • Команда az acr connected-registry create создает подключенный реестр с указанным репозиторием.
  • Az acr connected-registry create command перезаписывает действия, если карта myscopemap области синхронизации существует и перезаписывает свойства, если именованный mysynctoken токен синхронизации существует.
  • Команда az acr connected-registry create проверяет выделенную конечную точку данных во время создания подключенного реестра и предоставляет команду, чтобы включить выделенную конечную точку данных в реестре ACR.

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

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

  1. Создание строки подключения и файла JSON защищенных параметров

    Для безопасного развертывания подключенного расширения реестра создайте строка подключения, включая новый пароль, транспортный протокол и создайте protected-settings-extension.json файл, необходимый для развертывания расширения с помощью команды get-settings az acr connected-registry:

    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
    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
    echo "{\"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 | tr -d '\r')\" }" > settings.json

Примечание.

Команды cat и echos создают protected-settings-extension.json файл с сведениями строка подключения, внедряя содержимое строка подключения в protected-settings-extension.json файл, необходимый шаг для развертывания расширения. Команда az acr connected-registry get-settings создает строка подключения, включая создание нового пароля и спецификацию протокола транспорта.

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

    Разверните подключенное расширение реестра с указанными сведениями о конфигурации с помощью команды 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  
  • Команда az k8s-extension create развертывает подключенное расширение реестра в Kubernetescluster с указанными параметрами конфигурации и защищенным файлом параметров.
  • Он обеспечивает безопасное распределение доверия между подключенным реестром и всеми клиентскими узлами в кластере и устанавливает службу cert-manager для шифрования TLS.
  • КластерИП должен находиться в диапазоне IP-адресов подсети кластера AKS. Параметр service.clusterIP задает IP-адрес подключенной службы реестра в кластере. Важно задать service.clusterIP в диапазоне допустимых IP-адресов служб для Kubernetescluster. Убедитесь, что IP-адрес, указанный для service.clusterIP входа в диапазон IP-адресов указанной службы, определенный во время начальной конфигурации кластера, обычно находится в параметрах сети кластера. Если он service.clusterIP не находится в этом диапазоне, он должен быть обновлен до IP-адреса, который находится как в допустимом диапазоне, так и не используется другой службой.

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

Чтобы проверить развертывание подключенного расширения реестра в Kubernetescluster с поддержкой Arc, выполните следующие действия.

  1. Проверка состояния развертывания

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

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

Пример выходных данных

    {
    "aksAssignedIdentity": null,
    "autoUpgradeMinorVersion": true,
    "configurationProtectedSettings": {
      "connectionString": ""
    },
    "configurationSettings": {
      "pvc.storageClassName": "standard",
      "pvc.storageRequest": "250Gi",
      "service.clusterIP": "[your service cluster ip]"
    },
    "currentVersion": "0.11.0",
    "customLocationSettings": null,
    "errorInfo": null,
    "extensionType": "microsoft.containerregistry.connectedregistry",
    "id": "/subscriptions/[your subscription id]/resourceGroups/[your resource group name]/providers/Microsoft.Kubernetes/connectedClusters/[your arc cluster name]/providers/Microsoft.KubernetesConfiguration/extensions/[your extension name]",
    "identity": {
      "principalId": "[identity principal id]",
      "tenantId": null,
      "type": "SystemAssigned"
    },
    "isSystemExtension": false,
    "name": "[your extension name]",
    "packageUri": null,
    "plan": null,
    "provisioningState": "Succeeded",
    "releaseTrain": "preview",
    "resourceGroup": "[your resource group]",
    "scope": {
      "cluster": {
        "releaseNamespace": "connected-registry"
      },
      "namespace": null
    },
    "statuses": [],
    "systemData": {
      "createdAt": "2024-07-12T18:17:51.364427+00:00",
      "createdBy": null,
      "createdByType": null,
      "lastModifiedAt": "2024-07-12T18:22:42.156799+00:00",
      "lastModifiedBy": null,
      "lastModifiedByType": null
    },
    "type": "Microsoft.KubernetesConfiguration/extensions",
    "version": null
  }
  1. Проверка состояния и состояния подключенного реестра

    Для каждого подключенного реестра можно просмотреть состояние и состояние подключенного реестра с помощью команды 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 | 2024-05-09 12:00:00 |
    | myreadonlyacr | ReadOnly | offline | myacrregistry | myacrregistry.azurecr.io | 2024-05-09 12:00:00 |
  1. Проверка определенных сведений о подключенном реестре

    Дополнительные сведения о конкретном подключенном реестре используйте команду 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 | 2024-05-09 12:00:00 | 0 0 * * *     | 00:00:00-23:59:59 |
  • Команда az k8s-extension show проверяет состояние развертывания расширения.
  • Эта команда также содержит сведения о состоянии подключения подключенного реестра, последней синхронизации, окне синхронизации, расписании синхронизации и т. д.

Развертывание модуля 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
  1. Разверните модуль pod, использующий нужный образ из подключенного реестра, используя значение service.clusterIP-адрес 192.100.100.1 подключенного реестра и имя 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
    

Очистка ресурсов

При удалении развернутого расширения подключенного реестра удалите соответствующие подключенные модули pod реестра и параметры конфигурации.

  1. Удаление подключенного расширения реестра

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

    az k8s-extension delete --name myconnectedregistry 
    --cluster-name myarcakscluster \ 
    --resource-group myresourcegroup \ 
    --cluster-type connectedClusters
    

Удалив развернутый подключенный реестр, удалите подключенный экземпляр облака реестра и сведения о его конфигурации.

  1. Удаление подключенного реестра

    Выполните команду az acr connected-registry delete, чтобы удалить подключенный реестр:

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

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