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


Краткое руководство: Подключение существующего кластера Kubernetes к Azure Arc

Начало работы с Kubernetes с поддержкой Azure Arc с помощью Azure CLI или Azure PowerShell для подключения существующего кластера Kubernetes к Azure Arc.

Для ознакомления с концепцией подключения кластеров к Azure Arc, см. обзор агента Kubernetes, поддерживаемого Azure Arc. Чтобы опробовать возможности, посетите Azure Arc Jumpstart.

Предварительные условия

Внимание

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

Регистрация поставщиков для Kubernetes с поддержкой Azure Arc

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

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

    az provider show -n Microsoft.Kubernetes -o table
    az provider show -n Microsoft.KubernetesConfiguration -o table
    az provider show -n Microsoft.ExtendedLocation -o table
    

    После завершения регистрации RegistrationState эти пространства имен изменяются на Registered.

Создание группы ресурсов

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

az group create --name AzureArcTest --location EastUS --output table

Выходные данные:

Location    Name
----------  ------------
eastus      AzureArcTest

Подключение существующего кластера Kubernetes

Выполните следующую команду, чтобы подключить кластер. Эта команда развертывает агенты Azure Arc в кластере и устанавливает Helm версии 3.6.3 в .azure папку компьютера развертывания. Эта установка Helm 3 используется только для Azure Arc, и она не удаляет или не изменяет ранее установленные версии Helm на компьютере.

В этом примере имя кластера — AzureArcTest1.

az connectedk8s connect --name AzureArcTest1 --resource-group AzureArcTest

Выходные данные:

Helm release deployment succeeded

    {
      "aadProfile": {
        "clientAppId": "",
        "serverAppId": "",
        "tenantId": ""
      },
      "agentPublicKeyCertificate": "xxxxxxxxxxxxxxxxxxx",
      "agentVersion": null,
      "connectivityStatus": "Connecting",
      "distribution": "gke",
      "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/AzureArcTest/providers/Microsoft.Kubernetes/connectedClusters/AzureArcTest1",
      "identity": {
        "principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "type": "SystemAssigned"
      },
      "infrastructure": "gcp",
      "kubernetesVersion": null,
      "lastConnectivityTime": null,
      "location": "eastus",
      "managedIdentityCertificateExpirationTime": null,
      "name": "AzureArcTest1",
      "offering": null,
      "provisioningState": "Succeeded",
      "resourceGroup": "AzureArcTest",
      "tags": {},
      "totalCoreCount": null,
      "totalNodeCount": null,
      "type": "Microsoft.Kubernetes/connectedClusters"
    }

Совет

Если параметр расположения не указан в предыдущей команде, ресурс Kubernetes с поддержкой Azure Arc создается в том же расположении, что и группа ресурсов. Чтобы создать ресурс Kubernetes с поддержкой Azure Arc в другом расположении, укажите --location <region> или -l <region> при выполнении команды az connectedk8s connect.

Внимание

Если развертывание завершается сбоем из-за ошибки времени ожидания, ознакомьтесь с руководством по устранению неполадок.

Подключение с использованием исходящего прокси-сервера

Если ваш кластер защищен исходящим прокси-сервером, направляйте запросы через этот прокси-сервер.

  1. На компьютере развертывания задайте переменные среды, необходимые для Azure CLI, чтобы использовать исходящий прокси-сервер:

    export HTTP_PROXY=<proxy-server-ip-address>:<port>
    export HTTPS_PROXY=<proxy-server-ip-address>:<port>
    export NO_PROXY=<cluster-apiserver-ip-address>:<port>
    
  2. В кластере Kubernetes выполните команду подключения с параметрами proxy-https и proxy-http. Если прокси-сервер настроен как с HTTP, так и с HTTPS, обязательно используйте --proxy-http для прокси-сервера HTTP и --proxy-https прокси-сервера HTTPS. Если прокси-сервер использует только HTTP, это значение можно использовать для обоих параметров.

    az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port> --proxy-skip-range <excludedIP>,<excludedCIDR> --proxy-cert <path-to-cert-file>
    

    Примечание.

    • Некоторые сетевые запросы, такие как те, которые связаны с обменом данными между службами в кластере, необходимо отделять от трафика, который направляется через прокси-сервер для исходящего взаимодействия. --proxy-skip-range Используйте параметр, чтобы указать диапазон и конечные точки CIDR в разделенном запятыми способе, чтобы любые сообщения от агентов к этим конечным точкам не выполнялись через исходящий прокси-сервер. По крайней мере укажите диапазон CIDR служб в кластере в качестве значения этого параметра. Например, предположим, что kubectl get svc -A возвращает список служб, в котором все службы имеют значения ClusterIP в диапазоне 10.0.0.0/16. Затем укажите значение для --proxy-skip-range, равное 10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc.
    • Большинство исходящих прокси-сред ожидают --proxy-http, --proxy-httpsи --proxy-skip-range. Параметр --proxy-cert требуется только в том случае, если необходимо внедрить доверенные сертификаты, которые прокси-сервер ожидает в хранилище доверенных сертификатов модулей pod агента.
    • Для разрешения подключений websocket необходимо настроить исходящий прокси-сервер.

    Для исходящих прокси-серверов, если вы предоставляете только доверенный сертификат, запустите az connectedk8s connect с указанным только --proxy-cert параметром.

    az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>
    

    Если существует несколько доверенных сертификатов, объедините цепочку сертификатов (сертификат конечного уровня, промежуточный сертификат, корневой сертификат) в один файл, который вы указываете в параметре --proxy-cert.

    Совет

    • --custom-ca-cert является псевдонимом для --proxy-cert. Используйте любой параметр взаимозаменяемо. Если вы передаете оба параметра в одной команде, то используется последний.

Проверка подключения к кластеру

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

az connectedk8s list --resource-group AzureArcTest --output table

Выходные данные:

Name           Location    ResourceGroup
-------------  ----------  ---------------
AzureArcTest1  eastus      AzureArcTest

Если подключение не выполнено, см. статью "Диагностика проблем с подключением для кластеров Kubernetes с поддержкой Azure Arc" для устранения неполадок.

Примечание.

После подключения кластера может пройти до десяти минут, прежде чем метаданные кластера (например, версия кластера и количество узлов) отобразятся на странице обзора ресурса Kubernetes с поддержкой Azure Arc на портале Azure.

Просмотр агентов Azure Arc для Kubernetes

Kubernetes с использованием Azure Arc развертывает несколько агентов в пространстве имен azure-arc.

  1. Посмотрите эти деплойменты и поды с помощью следующей команды:

    kubectl get deployments,pods -n azure-arc
    
  2. Убедитесь, что все модули pod находятся в состоянии Running.

    Выходные данные:

     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
    

Дополнительные сведения об этих агентах см. в обзоре агента Kubernetes с поддержкой Azure Arc.

Очистка ресурсов

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

az connectedk8s delete --name AzureArcTest1 --resource-group AzureArcTest

Если процесс удаления завершается сбоем, используйте следующую команду, чтобы принудительно удалить. Добавьте -y для обхода запроса подтверждения:

az connectedk8s delete -n AzureArcTest1 -g AzureArcTest --force

Используйте эту команду, если при создании развертывания кластера возникают проблемы из-за ранее созданных ресурсов, которые не полностью удалены.

Примечание.

Если удалить ресурс Kubernetes с поддержкой Azure Arc на портале Azure, удалите связанные ресурсы конфигурации, но агенты, работающие в кластере, не удаляются. По этой причине мы рекомендуем использовать az connectedk8s delete для удаления ресурса Kubernetes с поддержкой Azure Arc.

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