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


Создание пользовательских расположений в Kubernetes с поддержкой Azure Arc и управление ими

Функция пользовательских расположений позволяет настроить кластеры Kubernetes с поддержкой Azure Arc в качестве целевых расположений для развертывания экземпляров предложений Azure. Примеры предложений Azure, которые можно развернуть поверх настраиваемых расположений, включают базы данных, такие как Управляемый экземпляр SQL, включенные сервером PostgreSQL с поддержкой Azure Arc и Azure Arc, или экземпляры приложений, такие как Служба приложений, Функции, Сетка событий, Logic Apps и Управление API.

Настраиваемое расположение имеет сопоставление "один к одному" с пространством имен в кластере Kubernetes с поддержкой Azure Arc. Настраиваемый ресурс Azure в сочетании с управлением доступом на основе ролей Azure (Azure RBAC) можно использовать для предоставления подробных разрешений разработчикам приложений или администраторам баз данных, что позволяет им развертывать такие ресурсы, как базы данных или экземпляры приложений на основе кластеров Kubernetes с поддержкой Arc в мультитенантной среде.

В этой статье вы узнаете, как включить пользовательские расположения в кластере Kubernetes с поддержкой Arc и как создать пользовательское расположение.

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

  • Установите или обновите Azure CLI до последней версии.

  • Установите последние версии следующих расширений Azure CLI:

    • connectedk8s

    • k8s-extension

    • customlocation

      az extension add --name connectedk8s
      az extension add --name k8s-extension
      az extension add --name customlocation
      

      Если вы уже установили connectedk8sk8s-extensionрасширения и customlocation расширения, обновите до последней версии с помощью следующей команды:

      az extension update --name connectedk8s
      az extension update --name k8s-extension
      az extension update --name customlocation
      
  • Убедитесь в завершении регистрации поставщика для Microsoft.ExtendedLocation.

    1. Введите следующие команды:

      az provider register --namespace Microsoft.ExtendedLocation
      
    2. Отслеживайте ход процесса регистрации. Она может занять до 10 минут.

      az provider show -n Microsoft.ExtendedLocation -o table
      

      После регистрации состояние RegistrationState будет иметь значение Registered.

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

Включение настраиваемых расположений в кластере

Совет

Функция пользовательских расположений зависит от функции подключения кластера. Обе функции должны быть включены в кластере, чтобы пользовательские расположения работали.

Если вы вошли в Azure CLI в качестве пользователя Microsoft Entra, используйте следующую команду:

az connectedk8s enable-features -n <clusterName> -g <resourceGroupName> --features cluster-connect custom-locations

При выполнении приведенной выше команды при входе в Azure CLI с помощью субъекта-службы может возникнуть следующее предупреждение:

Unable to fetch oid of 'custom-locations' app. Proceeding without enabling the feature. Insufficient privileges to complete the operation.

Это связано с тем, что субъект-служба не имеет разрешений на получение сведений о приложении, используемом службой Azure Arc. Чтобы избежать этой ошибки, выполните следующие действия.

  1. Войдите в Azure CLI с помощью учетной записи пользователя. objectId Получите или id приложение Microsoft Entra, используемое службой Azure Arc, с помощью следующей команды:

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
    
  2. Войдите в Azure CLI с помощью субъекта-службы. <objectId> Используйте или id значение из предыдущего шага, чтобы включить пользовательские расположения в кластере:

    az connectedk8s enable-features -n <cluster-name> -g <resource-group-name> --custom-locations-oid <objectId/id> --features cluster-connect custom-locations
    

Создание настраиваемого расположения

  1. Разверните расширение кластера службы Azure экземпляра службы Azure, который вы хотите установить в кластере:

  2. Получите идентификатор Azure Resource Manager кластера Kubernetes с поддержкой Azure Arc, который в последующих шагах упоминается как connectedClusterId:

    az connectedk8s show -n <clusterName> -g <resourceGroupName>  --query id -o tsv
    
  3. Получите идентификатор Azure Resource Manager расширения кластера, развернутого в кластере Kubernetes с поддержкой Azure Arc, на который ссылаются следующие действия extensionId:

    az k8s-extension show --name <extensionInstanceName> --cluster-type connectedClusters -c <clusterName> -g <resourceGroupName>  --query id -o tsv
    
  4. Создайте пользовательское расположение, ссылаясь на кластер Kubernetes с поддержкой Azure Arc и расширение:

    az customlocation create -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionId> 
    
    • Ниже перечислены необходимые параметры:

      Наименование параметра Description
      --name, --n Имя настраиваемого расположения.
      --resource-group, --g Группа ресурсов настраиваемого расположения.
      --namespace Пространство имен в кластере, привязанное к созданному пользовательскому расположению.
      --host-resource-id Идентификатор Azure Resource Manager кластера Kubernetes с поддержкой Azure Arc (подключенного кластера).
      --cluster-extension-ids Идентификатор Azure Resource Manager экземпляра расширения кластера, установленного в подключенном кластере. Для нескольких расширений укажите разделенный пробелами список идентификаторов расширений кластера.
    • Необязательные параметры

      Наименование параметра Description
      --location, --l Расположение настраиваемого расположения ресурса Azure Resource Manager в Azure. Если не указано, используется расположение подключенного кластера.
      --tags Разделенный пробелами список тегов в формате key[=value]. Используйте '' для очистки существующих тегов.
      --kubeconfig kubeconfig Администратор кластера.

Отображение сведений о пользовательском расположении

Чтобы отобразить сведения о пользовательском расположении, используйте следующую команду:

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> 

Устранение неполадок

Если создание пользовательского расположения завершается ошибкой Unknown proxy error occurred, измените политику сети, чтобы разрешить внутреннее взаимодействие pod-to-pod в azure-arc пространстве имен. Не забудьте также добавить azure-arc пространство имен в составе списка исключений без прокси-сервера для настроенной политики.

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