Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция пользовательских расположений обеспечивает возможность настройки кластеров Kubernetes с поддержкой Azure Arc в качестве целевых мест для развертывания экземпляров служб Azure. Примеры предложений Azure, которые можно развернуть поверх пользовательских расположений, включают базы данных, такие как управляемый экземпляр SQL, поддерживаемый Azure Arc, или экземпляры приложений, такие как контейнерные приложения, Logic Apps, Сетка событий и управление API.
Пользовательское местоположение имеет однозначное соответствие пространству имен в кластере Kubernetes, поддерживаемом Azure Arc. Ресурс настраиваемого местоположения Azure в сочетании с контролью доступа на основе ролей Azure (Azure RBAC) может использоваться для предоставления детализированных разрешений разработчикам приложений или администраторам баз данных, позволяя им разворачивать ресурсы, такие как базы данных или экземпляры приложений, на кластерных узлах Kubernetes с поддержкой Arc в многопользовательской среде.
В этой статье вы узнаете, как включить нестандартные местоположения в кластер Kubernetes с поддержкой Arc, а также как создать собственное местоположение.
Prerequisites
Установите или обновите Azure CLI до последней версии.
Установите последние версии следующих расширений Azure CLI:
connectedk8sk8s-extensioncustomlocationaz extension add --name connectedk8s az extension add --name k8s-extension az extension add --name customlocationЕсли вы уже установили расширения
connectedk8s,k8s-extensionиcustomlocation, обновите их до последней версии с помощью следующей команды:az extension update --name connectedk8s az extension update --name k8s-extension az extension update --name customlocation
Проверьте завершенную регистрацию поставщика для
Microsoft.ExtendedLocation.Введите следующие команды:
az provider register --namespace Microsoft.ExtendedLocationКонтролируйте процесс регистрации. Регистрация может занять до 10 минут.
az provider show -n Microsoft.ExtendedLocation -o tableПосле регистрации
RegistrationStateсостояние имеет значениеRegistered.
Убедитесь, что у вас есть существующий кластер Azure Arc-enabled Kubernetes, и обновите свои агенты до последней версии. Убедитесь, что компьютер, на котором будут выполняться команды, описанные в этой статье, содержит файл, указывающий
kubeconfigна этот кластер.
Включите пользовательские местоположения на вашем кластере
Важно
Функция настраиваемых расположений зависит от функции подключения кластера. Для функционирования пользовательских местоположений обе функции должны быть активированы в кластере.
Идентификатор объекта настройки расположения (OID) необходим для включения пользовательского расположения. Если для вашей учетной записи пользователя предоставлены необходимые права, OID будет автоматически получен при включении функции. Если у вас нет действительной учетной записи пользователя, то используется вручную переданный OID, но он не может быть проверен. Если OID недействителен, то пользовательское расположение может не быть должным образом активировано.
Перед созданием настраиваемых расположений необходимо включить функцию настраиваемых расположений, так как включение предоставляет необходимые разрешения для создания пространства имен настраиваемых расположений в кластере Kubernetes.
Включить пользовательские местоположения в качестве пользователя Microsoft Entra
Войдите в Azure CLI в качестве пользователя Microsoft Entra и выполните следующую команду:
az connectedk8s enable-features -n <clusterName> -g <resourceGroupName> --features cluster-connect custom-locations
Включение настраиваемых расположений с помощью сервисного принципала
Вручную получите OID пользовательского расположения, выполнив следующие действия.
Важно
Скопируйте и выполните команду на шаге 2, как показано ниже. Не замените значение, --id переданное параметру, другим значением.
Войдите в Azure CLI как пользователь Microsoft Entra.
Выполните следующую команду, чтобы получить пользовательское расположение
oid(идентификатор объекта), где--idотносится к самому приложению службы "Пользовательское расположение" и предварительно задано значениеbc313c14-388c-4e7d-a58e-70017303ee3b.az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsvВойдите в Azure CLI, используя служебный принципал. Запустите следующую команду, чтобы включить функцию пользовательских местоположений на кластере, используя значение
oid(ID объекта) из предыдущего шага для параметра--custom-locations-oid.az connectedk8s enable-features -n <cluster-name> -g <resource-group-name> --custom-locations-oid <cl-oid> --features cluster-connect custom-locations
Создать пользовательское местоположение
Установите расширение службы кластера Azure для экземпляра службы Azure, который вы хотите установить в кластере.
Службы данных, поддерживаемые Azure Arc
Примечание
Поддерживаемые кластерным расширением Azure Arc-enabled data services: исходящий прокси без аутентификации и исходящий прокси с базовой аутентификацией. Исходящий прокси-сервер, который ожидает доверенные сертификаты, в настоящее время не поддерживается.
Получите идентификатор диспетчера ресурсов Azure для кластера Kubernetes с Azure Arc, который будет использоваться в следующих шагах как
connectedClusterId:az connectedk8s show -n <clusterName> -g <resourceGroupName> --query id -o tsvПолучите идентификатор диспетчера ресурсов Azure для расширения кластера, которое вы развернули на кластере Kubernetes с поддержкой Azure Arc, упоминаемого на более поздних этапах как
extensionId.az k8s-extension show --name <extensionInstanceName> --cluster-type connectedClusters -c <clusterName> -g <resourceGroupName> --query id -o tsvСоздайте пользовательскую локацию, ссылаясь на кластер Kubernetes с поддержкой Azure Arc и расширение:
az customlocation create -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionId>Требуемые параметры:
Имя параметра Описание --name, --nИмя настраиваемого расположения. --resource-group, --gГруппа ресурсов настраиваемого расположения. --namespaceПространство имен в кластере, привязанное к созданному пользовательскому расположению. --host-resource-idИдентификатор Azure Resource Manager для кластера Kubernetes с поддержкой Azure Arc (подключенный кластер). --cluster-extension-idsИдентификатор Azure Resource Manager экземпляра расширения кластера, установленного на подключенном кластере. Для нескольких расширений укажите список идентификаторов расширений кластера, разделенных пробелами. Необязательные параметры
Имя параметра Описание --location, --lМестоположение кастомного ресурса Azure Resource Manager в Azure. Если не указано, используется расположение подключённого кластера. --tagsСписок тегов, разделенных пробелами, в формате key[=value]. Используйте '' для удаления существующих тегов.--kubeconfigАдминистратор kubeconfigкластера.
Подтвердите, что собственное расположение успешно включено, выполнив следующую команду и проверив, что
ProvisioningStateравноSucceeded.
az customlocation show -n <customLocationName> -g <resourceGroupName>
Проверьте использование пользовательского местоположения
Чтобы определить, активно ли пользовательское расположение используется другими ресурсами Azure, можно перечислить типы ресурсов, которые включены для него с помощью Azure CLI.
az customlocation list-enabled-resource-types -n <customLocationName> -g <resourceGroupName>
Эта команда возвращает список типов ресурсов Azure, настроенных для использования в конкретном пользовательском расположении. Если список не пуст, это указывает, что пользовательская локация в настоящее время используется этими типами ресурсов.
Пример результата:
[
{
"resourceType": "Microsoft.App/containerApps"
},
{
"resourceType": "Microsoft.Data/sqlManagedInstances"
}
]
Показать сведения о пользовательском местоположении
Чтобы показать детали пользовательского местоположения, используйте следующую команду:
az customlocation show -n <customLocationName> -g <resourceGroupName>
Перечислить настроенные расположения
Чтобы перечислить все пользовательские местоположения в группе ресурсов, используйте следующую команду:
az customlocation list -g <resourceGroupName>
Обновить пользовательское местоположение
Используйте команду update, чтобы добавить новые значения для --tags или связать новые --cluster-extension-ids с пользовательским местоположением, сохраняя существующие значения для тегов и связанных расширений кластеров.
az customlocation update -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionIds>
Исправление настраиваемого расположения
Используйте команду patch, чтобы заменить существующие значения для --cluster-extension-ids или --tags. Предыдущие значения не сохраняются.
az customlocation patch -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionIds>
Удаление настраиваемого расположения
Чтобы удалить пользовательское местоположение, используйте следующую команду:
az customlocation delete -n <customLocationName> -g <resourceGroupName>
Устранение неполадок
Ошибка при получении учетных данных в Azure CLI версии 2.70.0
Вы можете столкнуться с ошибкой, содержащей: TypeError: get_login_credentials() got an unexpected keyword argument 'resource'. Azure CLI версии 2.70.0 выпустила критическое изменение, которое активирует эту ошибку. Исправление доступно в az customlocation версии 0.1.4 для совместимости с Azure CLI версии 2.70.0 и выше.
Чтобы использовать более раннюю версию az customlocation, необходимо также использовать Azure CLI версии 2.69.0 или более ранней. Если вы использовали установщик Azure CLI, вы можете удалить текущую версию и установить Azure CLI версии 2.69.0.Azure CLI installation page Если вы использовали установщик pip, можно выполнить следующую команду, чтобы перейти на более раннюю версию: pip install azure-cli==2.69.0 Однако обычно рекомендуется использовать последнюю версию az customlocation и Azure CLI.
Неизвестная ошибка прокси
Если создание произвольного расположения завершается ошибкой Unknown proxy error occurred, измените политику сети, чтобы разрешить внутреннее взаимодействие между контейнерами в пространстве имен azure-arc. Убедитесь, что также добавили пространство имен azure-arc как часть списка исключений no-proxy для вашей настроенной политики.
Предупреждение служебного принципала
Если вы попытаетесь включить настраиваемое местоположение, входя в Azure CLI с помощью учетной записи службы, вы можете наблюдать следующее предупреждение:
Unable to fetch oid of 'custom-locations' app. Proceeding without enabling the feature. Insufficient privileges to complete the operation.
Это предупреждение появляется, потому что у учетной записи-службы отсутствуют необходимые разрешения для получения oid (идентификатор объекта) пользовательского местоположения, используемого службой Azure Arc. Следуйте инструкциям, указанным для включения функции пользовательского расположения с помощью учетной записи службы.
У поставщика ресурсов нет необходимых разрешений
Если вы попытаетесь создать настраиваемое местоположение до включения функции настраиваемого местоположения в кластере Kubernetes, может появиться следующее сообщение об ошибке:
Deployment failed. Correlation ID: ... "Microsoft.ExtendedLocation" resource provider does not have the required permissions to create a namespace on the cluster. Refer to https://aka.ms/ArcK8sCustomLocationsDocsEnableFeature to provide the required permissions to the resource provider.
Сначала включите функцию настройки расположения в кластере. После включения функции можно выполнить действия по созданию настраиваемого расположения.
Следующие шаги
- Безопасное подключение к кластеру с помощью функции подключения к кластеру .
- Продолжите с использованием Azure Container Apps на Azure Arc для получения подробных инструкций по установке расширений, созданию пользовательских местоположений и созданию среды, подключенной к Azure Container Apps.
- Узнайте больше о доступных на данный момент расширениях Kubernetes с поддержкой Azure Arc.