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


Включение Azure Arc в кластере Kubernetes на устройстве GPU Azure Stack Edge Pro

ОБЛАСТЬ ПРИМЕНЕНИЯ:Yes for Pro GPU SKUAzure Stack Edge Pro — GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro RYes for Mini R SKUAzure Stack Edge Mini R

В этой статье показано, как включить Azure Arc в существующем кластере Kubernetes на устройстве GPU Azure Stack Edge Pro.

В этой процедуре предполагается, что вы прочитали и поняли следующие статьи:

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

Убедитесь, что вы выполнили следующие предварительные требования на устройстве Azure Stack Edge Pro и клиенте, используемом для доступа к устройству:

Для устройств

  1. У вас есть учетные данные для входа на устройство Azure Stack Edge Pro с 1 узлом.

    1. Устройство активировано. См. Активация устройства.
    2. Для устройства настроена роль вычислений на портале Azure, а также установлен кластер Kubernetes. См. Настройка вычислений.
  2. У вас есть доступ владельца к подписке. Этот доступ потребуется на этапе назначения роли для субъекта-службы.

Для клиента, получающего доступ к устройству

  1. У вас есть клиентская система Windows, используемая для доступа к устройству Azure Stack Edge Pro.

    • На клиенте работает Windows PowerShell 5.0 или более поздней версии. Чтобы узнать, как скачать последнюю версию Windows PowerShell, перейдите к статье Установка Windows PowerShell.

    • Также можно использовать любой другой клиент с поддерживаемой операционной системой. В этой статье описывается процедура с использованием клиента Windows.

  2. Вы выполнили процедуру, описанную в разделе Access кластера Kubernetes на устройстве Azure Stack Edge Pro. Вы выполнили следующие задачи:

    • Установили kubectl на клиенте.
    • Убедитесь, что версия клиента kubectl отличается не более чем на единицу от главной версии Kubernetes, работающей на устройстве Azure Stack Edge Pro.
      • Используйте kubectl version для проверки версии kubectl, работающей на клиенте. Запишите полный номер версии.

      • В локальном пользовательском интерфейсе устройства Azure Stack Edge Pro перейдите в раздел Обновление программного обеспечения и запишите номер версии сервера Kubernetes.

        Verify Kubernetes server version number

      • Убедитесь, что эти две версии совместимы.

Регистрация поставщиков ресурсов Kubernetes

Прежде чем включить Azure Arc в кластере Kubernetes, необходимо включить и зарегистрировать подписку и Microsoft.KubernetesConfiguration зарегистрировать Microsoft.Kubernetes ее.

  1. Чтобы включить поставщика ресурсов, в портал Azure перейдите в подписку, которую планируете использовать для развертывания. Выберите Поставщики ресурсов.

  2. На правой панели найдите поставщики, которые нужно добавить. В данном примере — Microsoft.Kubernetes и Microsoft.KubernetesConfiguration.

    Register Kubernetes resource providers

  3. Выберите поставщик ресурсов, затем в верхней части панели команд выберите Зарегистрировать. Регистрация займет несколько минут.

    Register Kubernetes resource providers 2

  4. Обновите пользовательский интерфейс, пока не увидите, что поставщик ресурсов зарегистрирован. Повторите процесс для обоих поставщиков ресурсов.

    Register Kubernetes resource providers 3

Поставщики ресурсов также можно зарегистрировать с помощью az cli. Дополнительные сведения см. в разделе "Регистрация двух поставщиков для Kubernetes с поддержкой Azure Arc".

Создание субъекта-службы, назначение роли

  1. Убедитесь, что у вас есть Subscription ID и имя группы ресурсов, использованной для развертывания ресурсов для службы Azure Stack Edge. Чтобы получить идентификатор подписки, перейдите к ресурсу Azure Stack Edge на портале Azure. Перейдите к обзору > Essentials.

    Get subscription ID

    Чтобы получить имя группы ресурсов, перейдите в раздел Свойства.

    Get resource group name

  2. Чтобы создать субъект-службу, воспользуйтесь указанной ниже командой посредством az cli.

    az ad sp create-for-rbac --name "<Informative name for service principal>"

    Сведения о входе в az clicloud Shell в портал Azure. При использовании az cli локального клиента для создания субъекта-службы убедитесь, что вы используете версию 2.25 или более позднюю.

    Приведем пример.

    PS /home/user> az ad sp create-for-rbac --name "https://azure-arc-for-ase-k8s"
    {
      "appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "displayName": "azure-arc-for-ase-k8s",
      "name": "https://azure-arc-for-ase-k8s",
      "password": "<password>",
      "tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    }
    PS /home/user>
    
  3. Запишите appIDзначение , namepasswordи tenantID при использовании этих значений в качестве входных данных для следующей команды.

  4. После создания нового субъекта-службы назначьте роль Kubernetes Cluster - Azure Arc Onboarding только что созданному субъекту. Это встроенная роль Azure (используйте идентификатор роли в команде) с ограниченными разрешениями. Используйте следующую команду:

    az role assignment create --role 34e09817-6cbe-4d01-b1a2-e0eac5743d41 --assignee <appId-from-service-principal> --scope /subscriptions/<SubscriptionID>/resourceGroups/<Resource-group-name>

    Приведем пример.

    PS /home/user> az role assignment create --role 34e09817-6cbe-4d01-b1a2-e0eac5743d41 --assignee xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --scope /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myaserg1
    {
      "canDelegate": null,
      "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myaserg1/providers/Microsoft.Authorization/roleAssignments/59272f92-e5ce-4aeb-9c0c-62532d8caf25",
      "name": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "principalType": "ServicePrincipal",
      "resourceGroup": "myaserg1",
      "roleDefinitionId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Authorization/roleDefinitions/34e09817-6cbe-4d01-b1a2-e0eac5743d41",
      "scope": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myaserg1",
      "type": "Microsoft.Authorization/roleAssignments"
    }
    PS /home/user>
    

Включение Arc в кластере Kubernetes

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

  1. Подключитесь к интерфейсу PowerShell на вашем устройстве.

  2. Тип:

    Set-HcsKubernetesAzureArcAgent -SubscriptionId "<Your Azure Subscription Id>" -ResourceGroupName "<Resource Group Name>" -ResourceName "<Azure Arc resource name (shouldn't exist already)>" -Location "<Region associated with resource group>" -TenantId "<Tenant Id of service principal>" -ClientId "<App id of service principal>"

    При выполнении этой команды введите ClientSecretследующую строку. Укажите пароль субъекта-службы.

    CloudEnvironment Добавьте параметр, если вы используете облако, отличное от общедоступного azure. Этому параметру можно присвоить значение AZUREPUBLICCLOUD, AZURECHINACLOUD, AZUREGERMANCLOUD и AZUREUSGOVERNMENTCLOUD.

    Примечание.

    • Чтобы развернуть Azure Arc на устройстве, убедитесь, что используется поддерживаемый регион для Azure Arc.
    • Используйте команду az account list-locations, чтобы выяснить точное имя расположения для передачи в командлет Set-HcsKubernetesAzureArcAgent. Имена расположений обычно форматируются без пробелов.
    • ClientId и ClientSecret являются обязательными.

    Приведем пример:

    [10.100.10.10]: PS>Set-HcsKubernetesAzureArcAgent -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "myaserg1" -ResourceName "myasetestresarc" -Location "westeurope" -TenantId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ClientId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    
    WARNING: A script or application on the remote computer 10.126.76.0 is sending a prompt request. When you are prompted,
    enter sensitive information, such as credentials or passwords, only if you trust the remote computer and the
    application or script that is requesting the data.
    
    cmdlet Set-HcsKubernetesAzureArcAgent at command pipeline position 1
    
    Supply values for the following parameters:
    ClientSecret: **********************************
    [10.100.10.10]: PS>
    

    На портале Azure следует создать ресурс с именем, указанным в предыдущей команде.

    Go to Azure Arc resource

  3. Чтобы убедиться в успешном включении Azure Arc, выполните следующую команду в интерфейсе PowerShell:

    kubectl get deployments,pods -n azure-arc

    Ниже приведен пример выходных данных, показывающих агенты Azure Arc, развернутые в кластере azure-arc Kubernetes в пространстве имен.

    [10.128.44.240]: PS>kubectl get deployments,pods -n azure-arc
    NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/cluster-metadata-operator   1/1     1            1           13d
    deployment.apps/clusterconnect-agent        1/1     1            1           13d
    deployment.apps/clusteridentityoperator     1/1     1            1           13d
    deployment.apps/config-agent                1/1     1            1           13d
    deployment.apps/controller-manager          1/1     1            1           13d
    deployment.apps/extension-manager           1/1     1            1           13d
    deployment.apps/flux-logs-agent             1/1     1            1           13d
    deployment.apps/kube-aad-proxy              1/1     1            1           13d
    deployment.apps/metrics-agent               1/1     1            1           13d
    deployment.apps/resource-sync-agent         1/1     1            1           13d
    
    NAME                                            READY   STATUS    RESTARTS   AGE
    pod/cluster-metadata-operator-9568b899c-2stjn   2/2     Running   0          13d
    pod/clusterconnect-agent-576758886d-vggmv       3/3     Running   0          13d
    pod/clusteridentityoperator-6f59466c87-mm96j    2/2     Running   0          13d
    pod/config-agent-7cbd6cb89f-9fdnt               2/2     Running   0          13d
    pod/controller-manager-df6d56db5-kxmfj          2/2     Running   0          13d
    pod/extension-manager-58c94c5b89-c6q72          2/2     Running   0          13d
    pod/flux-logs-agent-6db9687fcb-rmxww            1/1     Running   0          13d
    pod/kube-aad-proxy-67b87b9f55-bthqv             2/2     Running   0          13d
    pod/metrics-agent-575c565fd9-k5j2t              2/2     Running   0          13d
    pod/resource-sync-agent-6bbd8bcd86-x5bk5        2/2     Running   0          13d
    [10.128.44.240]: PS>
    

Общие сведения об этих агентах доступны здесь.

Удаление Arc из кластера Kubernetes

Чтобы удалить управление Azure Arc, выполните следующие действия.

    1. Подключитесь к интерфейсу PowerShell на вашем устройстве.
  1. Тип:

    Remove-HcsKubernetesAzureArcAgent

Примечание.

По умолчанию, когда ресурс yamls удаляется из репозитория Git, соответствующие ресурсы не удаляются из кластера Kubernetes. Необходимо задать --sync-garbage-collection в Arc OperatorParams, чтобы разрешить удаление ресурсов при удалении из репозитория Git. Дополнительные сведения см. в статье Удаление конфигурации.

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

Сведения о том, как запустить развертывание Azure Arc, см. в статье Развертывание приложения PHP без отслеживания состояния Guestbook с помощью Redis через GitOps на устройстве Azure Stack Edge Pro.