Краткое руководство. Подключение существующего кластера Kubernetes к Azure Arc
Начало работы с Kubernetes с поддержкой Azure Arc с помощью Azure CLI или Azure PowerShell для подключения существующего кластера Kubernetes к Azure Arc.
Общие сведения о подключении кластеров к Azure Arc см. в обзоре агента Kubernetes с поддержкой Azure Arc. Чтобы ознакомиться с примером или практикой, посетите руководство по переходу к Azure Arc.
Необходимые компоненты
Внимание
В дополнение к этим предварительным требованиям обязательно соблюдайте все требования к сети для Kubernetes с поддержкой Azure Arc.
Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
Базовое понимание основных понятий Kubernetes.
Удостоверение (пользователь или субъект-служба), которое можно использовать для входа в Azure CLI и подключения кластера к Azure Arc.
Последняя версия Azure CLI.
Последняя версия расширения Azure CLI connectedk8s, установленная с помощью следующей команды:
az extension add --name connectedk8s
Работающий кластер Kubernetes. Если у вас нет кластера, его можно создать с помощью одного из следующих параметров:
Создание кластера Kubernetes с помощью Docker для Mac или Windows
Самостоятельно управляемый кластер Kubernetes с помощью API кластера
Примечание.
Кластер должен иметь по крайней мере один узел операционной системы и типа
linux/amd64
архитектуры и /илиlinux/arm64
. Дополнительные сведения о сценариях ARM64 см. в разделе "Требования к кластеру".
По крайней мере 850 МБ бесплатно для агентов Arc, которые будут развернуты в кластере, и емкость для использования примерно 7 % одного ЦП.
Файл kubeconfig и контекст, указывающий на кластер. Дополнительные сведения о том, что такое файл kubeconfig и как задать контекст для указания на кластер, см. в этой статье.
Регистрация поставщиков для Kubernetes с поддержкой Azure Arc
Введите следующие команды:
az provider register --namespace Microsoft.Kubernetes az provider register --namespace Microsoft.KubernetesConfiguration az provider register --namespace Microsoft.ExtendedLocation
Отслеживайте ход процесса регистрации. Она может занять до 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
.
Создание или изменение группы ресурсов
Выполните следующую команду:
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"
}
Совет
Команда, указанная выше без параметра location, создает ресурс Kubernetes с поддержкой Azure Arc в том же расположении, что и группа ресурсов. Чтобы создать ресурс Kubernetes с поддержкой Azure Arc в другом расположении, укажите --location <region>
или -l <region>
при выполнении команды az connectedk8s connect
.
Внимание
Если развертывание завершается сбоем из-за ошибки времени ожидания, ознакомьтесь с нашим руководством по устранению неполадок, чтобы узнать, как устранить эту проблему.
Подключение с использованием исходящего прокси-сервера
Если кластер находится за исходящим прокси-сервером, запросы должны направляться через исходящий прокси-сервер.
На компьютере развертывания задайте переменные среды, необходимые для 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>
В кластере 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
возвращает список служб, в котором все службы имеют значения кластера в диапазоне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
. Если ожидается несколько доверенных сертификатов, объединенная цепочка сертификатов может быть предоставлена в одном файле с помощью --proxy-cert
параметра.
Примечание.
--custom-ca-cert
является псевдонимом для--proxy-cert
. Любой из параметров можно использовать взаимозаменяемо. Передача обоих параметров в одной команде будет учитывать последний переданный параметр.
Выполните команду подключения с указанным параметром --proxy-cert
:
az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>
Проверка подключения к кластеру
Выполните следующую команду:
az connectedk8s list --resource-group AzureArcTest --output table
Выходные данные:
Name Location ResourceGroup
------------- ---------- ---------------
AzureArcTest1 eastus AzureArcTest
Примечание.
После подключения кластера потребуется от 5 до 10 минут, чтобы метаданные этого кластера (версия кластера, версия агента, число узлов и т. д.) появились на странице обзорных сведений для ресурса Kubernetes с поддержкой Azure Arc на портале Azure.
Совет
Сведения об устранении неполадок при подключении кластера см. в статье "Диагностика проблем с подключением для кластеров Kubernetes с поддержкой Azure Arc".
Просмотр агентов Azure Arc для Kubernetes
Kubernetes с поддержкой Azure Arc развертывает несколько агентов в azure-arc
пространстве имен.
Эти развертывания и модули pod можно просмотреть следующим образом:
kubectl get deployments,pods -n azure-arc
Убедитесь, что все модули 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, все связанные с ним ресурсы конфигурации и все агенты, работающие в кластере, с помощью следующей команды Azure CLI:
az connectedk8s delete --name AzureArcTest1 --resource-group AzureArcTest
Если процесс удаления завершается сбоем, используйте следующую команду, чтобы принудительно удалить (добавить -y
, если требуется обойти запрос на подтверждение):
az connectedk8s delete -n AzureArcTest1 -g AzureArcTest --force
Эта команда также может использоваться при возникновении проблем при создании нового развертывания кластера (из-за того, что ранее созданные ресурсы не полностью удалены).
Примечание.
Удаление ресурса Kubernetes с поддержкой Azure Arc с помощью портал Azure удаляет все связанные ресурсы конфигурации, но не удаляет агенты, работающие в кластере. Рекомендуется удалить ресурс Kubernetes с поддержкой Azure Arc, az connectedk8s delete
а не удалить ресурс в портал Azure.
Следующие шаги
- Узнайте, как развернуть конфигурации с помощью GitOps с Flux версии 2.
- Устранение распространенных проблем с Kubernetes с поддержкой Azure Arc.
- Использование автоматизированных сценариев Kubernetes с поддержкой Azure Arc с помощью Azure Arc Jumpstart.