Создание контроллера данных Azure Arc с помощью CLI
Необходимые компоненты
Ознакомьтесь с разделом Планирование развертывания служб данных с поддержкой Azure Arc, чтобы получить общие сведения.
Установка инструментов
Перед началом установки arcdata
расширения для Azure (az) CLI.
Установка расширения (arcdata
) для Azure (az
) CLI
Независимо от выбранной целевой платформы необходимо задать следующие переменные среды перед созданием контроллера данных. Эти переменные среды становятся учетными данными, используемыми для доступа к метрикам и панелям мониторинга журналов после создания контроллера данных.
Настройка переменных среды
Ниже приведены два набора переменных среды, необходимых для доступа к метрикам и панелям мониторинга журналов.
Переменные среды включают пароли для служб журналов и метрик. Пароли должны иметь по крайней мере восемь символов длиной и содержать символы из трех из следующих четырех категорий: латинские прописные буквы, строчные буквы, цифры и не буквенно-цифровые символы.
## variables for Metrics and Monitoring dashboard credentials
export AZDATA_LOGSUI_USERNAME=<username for Kibana dashboard>
export AZDATA_LOGSUI_PASSWORD=<password for Kibana dashboard>
export AZDATA_METRICSUI_USERNAME=<username for Grafana dashboard>
export AZDATA_METRICSUI_PASSWORD=<password for Grafana dashboard>
Подключение к кластеру Kubernetes
Подключитесь к кластеру Kubernetes и выполните проверку подлинности и выберите существующий контекст Kubernetes до начала создания контроллера данных Azure Arc. Способ подключения к кластеру или службе Kubernetes может быть разным. См. документацию по дистрибутиву Kubernetes или службе, которую вы используете для подключения к серверу API Kubernetes.
Вы можете убедиться в наличии текущего подключения к Kubernetes и проверить текущий контекст с помощью следующих команд.
kubectl cluster-info
kubectl config current-context
Создание контроллера данных Azure Arc
В следующих разделах приведены инструкции по определенным типам платформ Kubernetes. Следуйте инструкциям для вашей платформы.
- Служба Azure Kubernetes (AKS)
- AKS в Azure Stack HCI
- Azure Red Hat OpenShift (ARO)
- Платформа контейнеров Red Hat OpenShift (OCP)
- Открытый код, upstream Kubernetes (kubeadm)
- Служба AWS Elastic Kubernetes (EKS)
- Google Cloud Kubernetes Engine Service (GKE)
Совет
Если у вас нет кластера Kubernetes, его можно создать в Azure. Следуйте инструкциям в кратком руководстве. Развертывание служб данных с поддержкой Azure Arc — режим подключения напрямую портал Azure для выполнения всего процесса.
Затем следуйте инструкциям в разделе "Создать" Служба Azure Kubernetes (AKS).
Создание в службе Azure Kubernetes (AKS)
В профиле развертывания AKS по умолчанию используется класс хранения managed-premium
. Класс managed-premium
хранилища работает только в том случае, если у вас есть виртуальные машины, развернутые с помощью образов виртуальных машин с дисками класса Premium.
Если вы хотите использовать managed-premium
в качестве класса хранения, для создания контроллера данных можно выполнить следующую. Замените заполнители в этой команде именем группы ресурсов, идентификатором подписки и расположением Azure.
az arcdata dc create --profile-name azure-arc-aks-premium-storage --k8s-namespace <namespace> --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect --use-k8s
#Example:
#az arcdata dc create --profile-name azure-arc-aks-premium-storage --k8s-namespace arc --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect --use-k8s
Если вы не знаете, какой класс хранения использовать, нужно применить класс хранения default
, который поддерживается независимо от типа используемой виртуальной машины. Только этот класс хранения не обеспечивает максимальную производительность.
Если вы хотите использовать класс хранения default
, можно выполнить следующую команду:
az arcdata dc create --profile-name azure-arc-aks-default-storage --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect
#Example:
#az arcdata dc create --profile-name azure-arc-aks-default-storage --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect
После выполнения этой команды перейдите в раздел Наблюдение за состоянием создания.
Создание в AKS в Azure Stack HCI
Настройка хранилища (Azure Stack HCI с AKS-HCI)
Если вы используете Azure Stack HCI с AKS-HCI, создайте пользовательский класс хранилища с fsType
помощью .
fsType: ext4
Используйте этот тип для развертывания контроллера данных. Ознакомьтесь с полными инструкциями в статье Создание пользовательского класса хранения для диска Службы Azure Kubernetes в Azure Stack HCI.
По умолчанию профиль развертывания использует класс хранения с именем default
и тип службы LoadBalancer
.
Вы можете выполнить следующую команду, чтобы создать контроллер данных с классом хранения default
и типом службы LoadBalancer
.
az arcdata dc create --profile-name azure-arc-aks-hci --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect
#Example:
#az arcdata dc create --profile-name azure-arc-aks-hci --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect
После выполнения этой команды перейдите в раздел Наблюдение за состоянием создания.
Создание в Azure Red Hat OpenShift (ARO)
Создание настраиваемого профиля развертывания
Для Azure RedHat Open Shift используйте профиль azure-arc-azure-openshift
.
az arcdata dc config init --source azure-arc-azure-openshift --path ./custom
Создание контроллера данных
Для создания контроллера данных можно выполнить следующую команду:
az arcdata dc create --profile-name azure-arc-azure-openshift --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect
#Example
#az arcdata dc create --profile-name azure-arc-azure-openshift --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect
После выполнения этой команды перейдите в раздел Наблюдение за состоянием создания.
Создание на платформе контейнеров Red Hat OpenShift (OCP)
Определение класса хранилища
Чтобы определить, какой класс хранилища следует использовать, выполните следующую команду.
kubectl get storageclass
Создание настраиваемого профиля развертывания
Создайте новый файл настраиваемого профиля развертывания на основе профиля развертывания azure-arc-openshift
, выполнив следующую команду. Эта команда создает каталог custom
в текущем рабочем каталоге и файл настраиваемого профиля развертывания control.json
в этом каталоге.
Используйте профиль azure-arc-openshift
для платформы контейнеров OpenShift.
az arcdata dc config init --source azure-arc-openshift --path ./custom
Задание класса хранения
Теперь задайте необходимый класс хранения, заменив <storageclassname>
в приведенной ниже команде именем класса хранения, который вы хотите использовать и который был определен при выполнении команды kubectl get storageclass
ранее.
az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=<storageclassname>"
az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=<storageclassname>"
#Example:
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=mystorageclass"
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=mystorageclass"
Задание балансировщика нагрузки (необязательно)
По умолчанию в профиле развертывания azure-arc-openshift
в качестве типа службы используется NodePort
. Если вы используете кластер OpenShift, интегрированный с подсистемой балансировки нагрузки, можно изменить конфигурацию для использования типа службы LoadBalancer
с помощью следующей команды:
az arcdata dc config replace --path ./custom/control.json --json-values "$.spec.services[*].serviceType=LoadBalancer"
Создание контроллера данных
Теперь все готово для создания контроллера данных с помощью следующей команды.
Примечание.
Параметр --path
должен указывать на каталог, содержащий файл control.json, а не на сам файл control.json.
Примечание.
При развертывании на платформе контейнеров OpenShift укажите --infrastructure
значение параметра. Возможные варианты: aws
, azure
, alibaba
, gcp
, onpremises
.
az arcdata dc create --path ./custom --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect --infrastructure <infrastructure>
#Example:
#az arcdata dc create --path ./custom --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect --infrastructure onpremises
После выполнения этой команды перейдите в раздел Наблюдение за состоянием создания.
Создание в вышестоящем Kubernetes с открытым кодом (kubeadm)
По умолчанию в профиле развертывания kubeadm использует класс хранения с именем local-storage
и тип службы NodePort
. Если это устраивает вас, можно пропустить приведенные ниже инструкции, которые задают необходимый класс хранения и тип службы, и сразу же выполнить следующую команду az arcdata dc create
.
Если вы хотите настроить профиль развертывания, указав конкретный класс хранения и (или) тип службы, начните с создания нового файла настраиваемого профиля развертывания на основе профиля развертывания kubeadm, выполнив следующую команду. Эта команда создает каталог custom
в текущем рабочем каталоге и файл настраиваемого профиля развертывания control.json
в этом каталоге.
az arcdata dc config init --source azure-arc-kubeadm --path ./custom
Доступные классы хранения можно найти, выполнив следующую команду.
kubectl get storageclass
Теперь задайте необходимый класс хранения, заменив <storageclassname>
в приведенной ниже команде именем класса хранения, который вы хотите использовать и который был определен при выполнении команды kubectl get storageclass
ранее.
az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=<storageclassname>"
az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=<storageclassname>"
#Example:
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=mystorageclass"
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=mystorageclass"
По умолчанию в профиле развертывания kubeadm в качестве типа службы используется NodePort
. Если вы используете кластер Kubernetes, интегрированный с подсистемой балансировки нагрузки, конфигурацию можно изменить с помощью следующей команды.
az arcdata dc config replace --path ./custom/control.json --json-values "$.spec.services[*].serviceType=LoadBalancer"
Теперь все готово для создания контроллера данных с помощью следующей команды.
Примечание.
При развертывании на платформе контейнеров OpenShift укажите --infrastructure
значение параметра. Возможные варианты: aws
, azure
, alibaba
, gcp
, onpremises
.
az arcdata dc create --path ./custom --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect --infrastructure <infrastructure>
#Example:
#az arcdata dc create --path ./custom - --k8s-namespace <namespace> --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect --infrastructure onpremises
После выполнения этой команды перейдите в раздел Наблюдение за состоянием создания.
Создание в службе AWS Elastic Kubernetes Service (EKS)
По умолчанию класс хранения EKS имеет значение gp2
, а тип службы — LoadBalancer
.
Выполните следующую команду, чтобы создать контроллер данных с помощью указанного профиля развертывания EKS.
az arcdata dc create --profile-name azure-arc-eks --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect
#Example:
#az arcdata dc create --profile-name azure-arc-eks --k8s-namespace <namespace> --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect
После выполнения этой команды перейдите в раздел Наблюдение за состоянием создания.
Создание в службе Google Cloud Kubernetes Engine Service (GKE)
По умолчанию класс хранения GKE имеет значение standard
, а тип службы — LoadBalancer
.
Выполните следующую команду, чтобы создать контроллер данных с помощью указанного профиля развертывания GKE.
az arcdata dc create --profile-name azure-arc-gke --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect
#Example:
#az arcdata dc create --profile-name azure-arc-gke --k8s-namespace <namespace> --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect
После выполнения этой команды перейдите в раздел Наблюдение за состоянием создания.
Мониторинг состояния создания
Создание контроллера занимает несколько минут. Вы можете отслеживать ход выполнения этой операции в другом окне терминала с помощью следующих команд:
Примечание.
В приведенных ниже командах предполагается, что вы создали контроллер данных с именем arc-dc
и пространство имен arc
Kubernetes. Если вы использовали разные значения, измените скрипт соответствующим образом.
kubectl get datacontroller/arc-dc --namespace arc
kubectl get pods --namespace arc
Вы также можете проверить состояние создания любого объекта pod, выполнив команду, как показано ниже. Это особенно полезно для устранения неполадок.
kubectl describe po/<pod name> --namespace arc
#Example:
#kubectl describe po/control-2g7bl --namespace arc
Устранение неполадок при создании
Если при создании у вас возникли какие-либо проблемы, ознакомьтесь с Руководством по устранению неполадок.