Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
The custom locations feature provides a way to configure your Azure Arc-enabled Kubernetes clusters as target locations for deploying instances of Azure offerings. Examples of Azure offerings that can be deployed on top of custom locations include databases, such as SQL Managed Instance enabled by Azure Arc and Azure Arc-enabled PostgreSQL server, or application instances, such as Container Apps, Logic Apps, Event Grid, Logic Apps, and API Management.
Пользовательское местоположение имеет однозначное соответствие пространству имен в кластере Kubernetes, поддерживаемом Azure Arc. Ресурс настраиваемого местоположения Azure в сочетании с контролью доступа на основе ролей Azure (Azure RBAC) может использоваться для предоставления детализированных разрешений разработчикам приложений или администраторам баз данных, позволяя им разворачивать ресурсы, такие как базы данных или экземпляры приложений, на кластерных узлах Kubernetes с поддержкой Arc в многопользовательской среде.
В этой статье вы узнаете, как включить нестандартные местоположения в кластер Kubernetes с поддержкой Arc, а также как создать собственное местоположение.
Prerequisites
Install or upgrade Azure CLI to the latest version.
Установите последние версии следующих расширений Azure CLI:
connectedk8s
k8s-extension
customlocation
az 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
, указывающий на этот кластер.
Включите пользовательские местоположения на вашем кластере
Важно
The custom locations feature is dependent on the cluster connect feature. Both features must be enabled in the cluster for custom locations to function.
The Custom Location Object ID (OID) is needed to enable custom location. Если для вашей учетной записи пользователя предоставлены необходимые права, OID будет автоматически получен при включении функции. Если у вас нет действующей учетной записи пользователя, используется переданный вручную OID, но этот OID не может быть проверен. Если OID недействителен, то пользовательское расположение может не быть должным образом активировано.
Перед созданием кастомных расположений необходимо включить функцию кастомных расположений, так как включение предоставляет необходимые разрешения для создания пространства имен кастомных расположений в кластере Kubernetes.
To enable the custom locations feature as a Microsoft Entra user, follow the steps below:
- Sign into Azure CLI as a Microsoft Entra user and run the following command:
az connectedk8s enable-features -n <clusterName> -g <resourceGroupName> --features cluster-connect custom-locations
Чтобы включить функцию пользовательских местоположений с использованием служебного принципала, выполните следующие действия:
Manually retrieve the custom location OID by following these steps:
Войдите в Azure CLI как пользователь Microsoft Entra.
Run the following command to fetch the custom location
oid
(object ID), where--id
refers to the Custom Location service app itself, and is predefined and set tobc313c14-388c-4e7d-a58e-70017303ee3b
:Important! Скопируйте и выполните команду точно так, как показано ниже. Не заменяйте значение, переданное в параметр
--id
, другим значением.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
Создать пользовательское местоположение
Deploy the Azure service cluster extension of the Azure service instance you want to install on your cluster:
Службы данных, поддерживаемые 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
Name of the custom location. --resource-group, --g
Resource group of the custom location. --namespace
Namespace in the cluster bound to the custom location being created. --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
Admin kubeconfig
of cluster.
Подтвердите, что собственное расположение успешно включено, выполнив следующую команду и проверив, что
ProvisioningState
равноSucceeded
.
az customlocation show -n <customLocationName> -g <resourceGroupName>
Показать сведения о пользовательском местоположении
Чтобы показать детали пользовательского местоположения, используйте следующую команду:
az customlocation show -n <customLocationName> -g <resourceGroupName>
List custom locations
Чтобы перечислить все пользовательские местоположения в группе ресурсов, используйте следующую команду:
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 a custom location
Используйте команду patch
, чтобы заменить существующие значения для --cluster-extension-ids
или --tags
. Предыдущие значения не сохраняются.
az customlocation patch -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionIds>
Delete a custom location
Чтобы удалить пользовательское местоположение, используйте следующую команду:
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 выпустила критическое изменение, которое вызывает эту ошибку. Исправление доступно в расширении customlocation Az CLI версии 0.1.4 для совместимости с Azure CLI версии 2.70.0 и выше. If you are using a customlocation Az CLI extension below v0.1.4, you need to downgrade Azure CLI to version 2.69.0. Если вы использовали установщик Azure CLI, вы можете удалить текущую версию и установить Azure CLI версии 2.69.0.Azure CLI installation page
Если вы использовали установщик pip, можно выполнить следующую команду, чтобы перейти на более раннюю версию: pip install azure-cli==2.69.0
Неизвестная ошибка прокси
If custom location creation fails with the error Unknown proxy error occurred
, modify your network policy to allow pod-to-pod internal communication within the azure-arc
namespace. Убедитесь, что также добавили пространство имен azure-arc
как часть списка исключений no-proxy для вашей настроенной политики.
Service principal warning
If you try to enable custom location while logged into Azure CLI using a service principal, you may observe the following warning:
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.
Сначала следуйте приведенным выше инструкциям, чтобы активировать пользовательскую функцию настройки расположения в кластере Kubernetes. После включения функции можно выполнить действия по созданию настраиваемого расположения.
Следующие шаги
- Надежно подключитесь к кластеру, используя Cluster Connect.
- Продолжите с использованием Azure Container Apps на Azure Arc для получения подробных инструкций по установке расширений, созданию пользовательских местоположений и созданию среды, подключенной к Azure Container Apps.
- Создайте тему Event Grid и подписку на события для Event Grid на Kubernetes.
- Узнайте больше о доступных на данный момент расширениях Kubernetes с поддержкой Azure Arc.