Краткое руководство. Развертывание расширения подключенного реестра 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, "Только для чтения", "Распределение доверия" и "Диспетчер сертификатов". Выполните действия по успешному развертыванию:
- Создайте подключенный реестр.
- Разверните расширение подключенного реестра Arc.
- Проверьте развертывание подключенного расширения реестра.
- Разверните модуль pod, использующий образ из подключенного реестра.
Создание подключенного реестра и синхронизация с ACR
Создание подключенного реестра для синхронизации с ACR является основным шагом для развертывания расширения подключенного реестра Arc.
Создайте подключенный реестр, который синхронизируется с реестром 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.
Создание строки подключения и файла 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 создает строка подключения, включая создание нового пароля и спецификацию протокола транспорта.
Развертывание расширения подключенного реестра
Разверните подключенное расширение реестра с указанными сведениями о конфигурации с помощью команды 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, выполните следующие действия.
Проверка состояния развертывания
Выполните команду 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
}
Проверка состояния и состояния подключенного реестра
Для каждого подключенного реестра можно просмотреть состояние и состояние подключенного реестра с помощью команды 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 |
Проверка определенных сведений о подключенном реестре
Дополнительные сведения о конкретном подключенном реестре используйте команду 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, использующий образ из подключенного реестра в кластере, операция должна выполняться из самого узла кластера. Выполните следующие действия:
- Создайте секрет в кластере для проверки подлинности в подключенном реестре:
Выполните команду kubectl create secret docker-registry, чтобы создать секрет в кластере для проверки подлинности в подключенном реестре:
kubectl create secret docker-registry regcred --docker-server=192.100.100.1 --docker-username=mytoken --docker-password=mypassword
Разверните модуль 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 реестра и параметры конфигурации.
Удаление подключенного расширения реестра
Выполните команду az k8s-extension delete, чтобы удалить подключенное расширение реестра:
az k8s-extension delete --name myconnectedregistry --cluster-name myarcakscluster \ --resource-group myresourcegroup \ --cluster-type connectedClusters
Удалив развернутый подключенный реестр, удалите подключенный экземпляр облака реестра и сведения о его конфигурации.
Удаление подключенного реестра
Выполните команду az acr connected-registry delete, чтобы удалить подключенный реестр:
az acr connected-registry delete --registry myacrregistry \ --name myconnectedregistry \ --resource-group myresourcegroup