Creación de un controlador de datos de Azure Arc mediante la CLI
Requisitos previos
Revise el tema Planeamiento de una implementación de servicios de datos habilitados para Azure Arc para obtener información general.
Instalación de herramientas
Antes de empezar, instale la extensión arcdata
para la CLI de Azure (az).
Instalación de la extensión (arcdata
) para la CLI de Azure (az
)
Independientemente de la plataforma de destino que elija, tiene que establecer las siguientes variables de entorno antes de la creación para el controlador de datos. Estas variables de entorno se convierten en las credenciales usadas para acceder a los paneles de métricas y registros después de la creación del controlador de datos.
Establecimiento de variables de entorno
A continuación, se proporcionan dos conjuntos de variables de entorno necesarias para acceder a los paneles de métricas y registros.
Las variables de entorno incluyen contraseñas para los servicios de registro y métricas. Las contraseñas deben tener al menos ocho caracteres y contener caracteres de tres de las cuatro categorías siguientes: letras latinas en mayúscula, letras latinas en minúscula, números y caracteres no alfanuméricos.
## 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>
Conexión al clúster de Kubernetes
Conéctese a un clúster de Kubernetes y autentíquese en él, y disponga de un contexto de Kubernetes existente seleccionado antes de comenzar la creación del controlador de datos de Azure Arc. La forma en que se conecta a un clúster o servicio de Kubernetes varía; consulte la documentación de la distribución o el servicio de Kubernetes que usa para saber cómo conectarse al servidor de API de Kubernetes.
Puede comprobar que tiene una conexión de Kubernetes y confirmar el contexto actual con los siguientes comandos.
kubectl cluster-info
kubectl config current-context
Creación del controlador de datos de Azure Arc
En las secciones siguientes se proporcionan instrucciones para tipos específicos de plataformas de Kubernetes. Siga las instrucciones de la plataforma.
- Azure Kubernetes Service (AKS)
- AKS en Azure Stack HCI
- Red Hat OpenShift en Azure (ARO)
- Plataforma de contenedor de Red Hat OpenShift (OCP)
- Creación en Kubernetes ascendente de código abierto (kubeadm)
- AWS Elastic Kubernetes Service (EKS)
- Creación en Kubernetes Engine Service (GKE) de Google Cloud
Sugerencia
Si no tiene ningún clúster de Kubernetes, puede crear uno en Azure. Siga las instrucciones de Inicio rápido: Implementación de servicios de datos habilitados para Azure Arc en modo de conexión directa mediante Azure Portal para recorrer todo el proceso.
A continuación, siga las instrucciones de Crear en Azure Kubernetes Service (AKS).
Creación en Azure Kubernetes Service (AKS)
De forma predeterminada, el perfil de implementación de AKS usa la clase de almacenamiento managed-premium
. La clase de almacenamiento managed-premium
solo funciona si tiene máquinas virtuales que se implementaron mediante imágenes de máquina virtual con discos premium.
Si va a usar managed-premium
como clase de almacenamiento, puede ejecutar el siguiente comando para implementar el controlador de datos. Sustituya los marcadores de posición del comando por el nombre del grupo de recursos, el identificador de la suscripción y la ubicación de 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
Si no está seguro de qué clase de almacenamiento debe utilizar, indique la clase de almacenamiento default
, que es compatible con cualquier tipo de máquina virtual que esté usando. No le ofrecerá el rendimiento más rápido.
Si desea usar la clase de almacenamiento default
, puede ejecutar este comando:
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
Una vez ejecutado el comando, continúe en Supervisión del estado de creación.
Creación en AKS en Azure Stack HCI
Configuración del almacenamiento (Azure Stack HCI con AKS-HCI)
Si usa Azure Stack HCI con AKS-HCI, cree una clase de almacenamiento personalizada con fsType
.
fsType: ext4
Use este tipo para implementar el controlador de datos. Vea todas las instrucciones en Creación de una clase de almacenamiento personalizada para un disco de AKS en Azure Stack HCI.
De forma predeterminada, el perfil de implementación utiliza una clase de almacenamiento denominada default
y el tipo de servicio LoadBalancer
.
Puede ejecutar el siguiente comando para implementar el controlador de datos con la clase de almacenamiento default
y el tipo de servicio 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
Una vez ejecutado el comando, continúe en Supervisión del estado de creación.
Creación en Red Hat OpenShift en Azure (ARO)
Creación de un perfil de implementación personalizado
Use el perfil azure-arc-azure-openshift
para Azure RedHat Open Shift.
az arcdata dc config init --source azure-arc-azure-openshift --path ./custom
Creación de un controlador de datos
Puede ejecutar el comando siguiente para crear el controlador de datos:
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
Una vez ejecutado el comando, continúe en Supervisión del estado de creación.
Creación en Red Hat OpenShift Container Platform (OCP)
Determinación de la clase de almacenamiento
Para determinar qué clase de almacenamiento se va a usar, ejecute el siguiente comando.
kubectl get storageclass
Creación de un perfil de implementación personalizado
Cree un nuevo archivo de perfil de implementación personalizado basado en el perfil de implementación azure-arc-openshift
ejecutando el siguiente comando. Este comando crea un directorio custom
en el directorio de trabajo actual y un archivo de perfil de implementación personalizado control.json
en ese directorio.
Use el perfil azure-arc-openshift
para OpenShift Container Platform.
az arcdata dc config init --source azure-arc-openshift --path ./custom
Establecimiento de la clase de almacenamiento
Ahora, establezca la clase de almacenamiento deseada reemplazando <storageclassname>
en el siguiente comando por el nombre de la clase de almacenamiento que desea usar y que se determinó mediante la ejecución del comando kubectl get storageclass
anterior.
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"
Establecimiento de LoadBalancer (opcional)
De forma predeterminada, el perfil de implementación azure-arc-openshift
usa NodePort
como el tipo de servicio. Si usa un clúster de OpenShift que está integrado con un equilibrador de carga, puede cambiar la configuración para usar el tipo de servicio LoadBalancer
con el siguiente comando:
az arcdata dc config replace --path ./custom/control.json --json-values "$.spec.services[*].serviceType=LoadBalancer"
Creación de un controlador de datos
Ahora ya puede crear el controlador de datos con el siguiente comando.
Nota:
El parámetro --path
debe apuntar al directorio que contiene el archivo control.json y no al propio archivo control.json.
Nota:
Al implementar en OpenShift Container Platform, especifique el valor del parámetro --infrastructure
. Las opciones son: aws
, azure
, alibaba
, gcp
y 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
Una vez ejecutado el comando, continúe en Supervisión del estado de creación.
Creación en Kubernetes ascendente de código abierto (kubeadm)
De forma predeterminada, el perfil de implementación de kubeadm usa una clase de almacenamiento denominada local-storage
y el tipo de servicio NodePort
. Si le resulta aceptable, puede omitir las instrucciones que se indican a continuación para establecer la clase de almacenamiento y el tipo de servicio que desee y ejecutar inmediatamente el comando az arcdata dc create
siguiente.
Si desea personalizar el perfil de implementación para especificar una clase de almacenamiento o un tipo de servicio específicos, empiece por crear un nuevo archivo de perfil de implementación personalizado basado en el perfil de implementación de kubeadm. Para ello, ejecute el siguiente comando. Este comando crea un directorio custom
en el directorio de trabajo actual y un archivo de perfil de implementación personalizado control.json
en ese directorio.
az arcdata dc config init --source azure-arc-kubeadm --path ./custom
Puede buscar las clases de almacenamiento disponibles mediante la ejecución del siguiente comando.
kubectl get storageclass
Ahora, establezca la clase de almacenamiento deseada reemplazando <storageclassname>
en el siguiente comando por el nombre de la clase de almacenamiento que desea usar y que se determinó mediante la ejecución del comando kubectl get storageclass
anterior.
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"
De forma predeterminada, el perfil de implementación de kubeadm usa NodePort
como tipo de servicio. Si usa un clúster de Kubernetes que está integrado con un equilibrador de carga, puede cambiar la configuración con el siguiente comando.
az arcdata dc config replace --path ./custom/control.json --json-values "$.spec.services[*].serviceType=LoadBalancer"
Ahora ya puede crear el controlador de datos con el siguiente comando.
Nota:
Al implementar en OpenShift Container Platform, especifique el valor del parámetro --infrastructure
. Las opciones son: aws
, azure
, alibaba
, gcp
y 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
Una vez ejecutado el comando, continúe en Supervisión del estado de creación.
Creación en Elastic Kubernetes Service (EKS) de AWS
De forma predeterminada, la clase de almacenamiento de EKS es gp2
y el tipo de servicio es LoadBalancer
.
Ejecute el siguiente comando para crear el controlador de datos mediante el perfil de implementación de EKS proporcionado.
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
Una vez ejecutado el comando, continúe en Supervisión del estado de creación.
Creación en Kubernetes Engine Service (GKE) de Google Cloud
De forma predeterminada, la clase de almacenamiento de GKE es standard
y el tipo de servicio es LoadBalancer
.
Ejecute el siguiente comando para crear el controlador de datos mediante el perfil de implementación de GKE proporcionado.
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
Una vez ejecutado el comando, continúe en Supervisión del estado de creación.
Supervisión del estado de creación
Se tardan algunos minutos en crear el controlador por completo. Puede supervisar el progreso en otra ventana de terminal con los siguientes comandos:
Nota:
En los siguientes comandos de ejemplo se da por hecho que ha creado un controlador de datos denominado arc-dc
y un espacio de nombres de Kubernetes denominado arc
. Si ha usado valores diferentes, actualice el script en consecuencia.
kubectl get datacontroller/arc-dc --namespace arc
kubectl get pods --namespace arc
También puede comprobar el estado de creación de un pod determinado ejecutando un comando como el siguiente. Esto es especialmente útil para solucionar problemas.
kubectl describe po/<pod name> --namespace arc
#Example:
#kubectl describe po/control-2g7bl --namespace arc
Solución de problemas de creación
Si tiene problemas con la creación, consulte la guía de solución de problemas.