Inicio rápido: conexión de un clúster de Kubernetes existente a Azure Arc
En este inicio rápido, conocerá las ventajas de Kubernetes habilitado para Azure Arc y cómo conectar un clúster de Kubernetes existente a Azure Arc. Para un análisis conceptual sobre la conexión de clústeres a Azure Arc, consulte el artículo Arquitectura del agente de Kubernetes habilitado para Azure Arc.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Requisitos previos
Instale o actualice la CLI de Azure a la versión 2.16.0 o posteriores.
Instale la extensión connectedk8s de la CLI de Azure, versión 1.2.0 o posterior:
az extension add --name connectedk8sUn clúster de Kubernetes en funcionamiento. Si no tiene ninguno, puede crear un clúster mediante una de estas opciones:
Creación de un clúster de Kubernetes con Docker para Mac o Windows
Clúster de Kubernetes autoadministrado mediante la API de clúster
Si desea conectar un clúster de OpenShift a Azure Arc, es preciso que ejecute el siguiente comando una sola vez en el clúster antes de ejecutar
az connectedk8s connect:oc adm policy add-scc-to-user privileged system:serviceaccount:azure-arc:azure-arc-kube-aad-proxy-sa
Nota
El clúster debe tener al menos un nodo de sistema operativo y el tipo de arquitectura
linux/amd64. Los clústeres que solo tienen nodoslinux/arm64aún no se admiten.Un archivo
kubeconfigy un contexto que apunte al clúster.Permisos de lectura y escritura en el tipo de recurso de Kubernetes habilitado para Azure Arc (
Microsoft.Kubernetes/connectedClusters).
Cumplimiento de los requisitos de red
Importante
Los agentes de Azure Arc necesitan las siguientes direcciones URL de salida en https://:443 para funcionar:
Para *.servicebus.windows.net, los websockets deben estar habilitados para el acceso saliente en el firewall y el proxy.
| Punto de conexión (DNS) | Descripción |
|---|---|
https://management.azure.com (para la nube de Azure), https://management.usgovcloudapi.net (para Azure US Government) |
Necesario para que el agente se conecte a Azure y registre el clúster. |
https://<region>.dp.kubernetesconfiguration.azure.com (para la nube de Azure), https://<region>.dp.kubernetesconfiguration.azure.us (para Azure US Government) |
Punto de conexión de plano de datos para que el agente inserte información de la configuración de estado y recuperación de cambios. |
https://login.microsoftonline.com, login.windows.net (para la nube de Azure), https://login.microsoftonline.us (para Azure US Government) |
Necesario para capturar y actualizar tokens de Azure Resource Manager. |
https://mcr.microsoft.com, https://*.data.mcr.microsoft.com |
Necesario para extraer imágenes de contenedor para agentes de Azure Arc. |
https://gbl.his.arc.azure.com (para la nube de Azure), https://gbl.his.arc.azure.us (para Azure US Government) |
Necesario para obtener el punto de conexión regional para extraer los certificados de la identidad administrada asignada por el sistema. |
https://*.his.arc.azure.com (para la nube de Azure), https://usgv.his.arc.azure.us (para Azure US Government) |
Necesario para extraer certificados de identidad administrados que haya asignado el sistema. |
*.servicebus.windows.net, guestnotificationservice.azure.com, *.guestnotificationservice.azure.com, sts.windows.net |
Para escenarios basados en la conexión de clúster y la ubicación personalizada. |
https://k8connecthelm.azureedge.net |
az connectedk8s connect usa Helm 3 para implementar agentes de Azure Arc en el clúster de Kubernetes. Este punto de conexión es necesario para que el cliente de Helm descargue para facilitar la implementación del gráfico de Helm del agente. |
1. Registro de proveedores en Kubernetes habilitado para Azure Arc
Escriba los siguientes comandos:
az provider register --namespace Microsoft.Kubernetes az provider register --namespace Microsoft.KubernetesConfiguration az provider register --namespace Microsoft.ExtendedLocationSupervise el proceso de registro. El registro puede tardar un máximo de 10 minutos.
az provider show -n Microsoft.Kubernetes -o table az provider show -n Microsoft.KubernetesConfiguration -o table az provider show -n Microsoft.ExtendedLocation -o tableUna vez registrado, debería ver que el estado
RegistrationStatede estos espacios de nombres cambia aRegistered.
2. Crear un grupo de recursos
Ejecute el siguiente comando:
az group create --name AzureArcTest --location EastUS --output table
Salida:
Location Name ---------- ------------ eastus AzureArcTest
3. Conexión de un clúster de Kubernetes existente
Ejecute el siguiente comando:
az connectedk8s connect --name AzureArcTest1 --resource-group AzureArcTest
Salida:
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"
}
Sugerencia
El comando anterior sin el parámetro location especificado crea el recurso de Kubernetes habilitado para Azure Arc en la misma ubicación que el grupo de recursos. Para crear el recurso de Kubernetes habilitado para Azure Arc en una ubicación diferente, especifique --location <region> o -l <region> al ejecutar el comando az connectedk8s connect.
Nota
Si ha iniciado sesión en la CLI de Azure mediante una entidad de servicio, es necesario establecer un parámetro adicional para habilitar la característica de ubicación personalizada en el clúster.
4a. Conexión mediante un servidor proxy de salida
Si el clúster se encuentra detrás de un servidor proxy de salida, tanto la CLI de Azure como los agentes de Kubernetes habilitado para Azure Arc deben enrutar sus solicitudes a través del servidor proxy de salida.
Establezca las variables de entorno necesarias para que CLI de Azure use el servidor proxy de salida:
export HTTP_PROXY=<proxy-server-ip-address>:<port> export HTTPS_PROXY=<proxy-server-ip-address>:<port> export NO_PROXY=<cluster-apiserver-ip-address>:<port>Ejecute el comando connect con los parámetros de proxy especificados:
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>Nota
- Algunas solicitudes de red, como las que implican la comunicación entre servicios en el clúster, deben separarse del tráfico que se enruta a través del servidor proxy para la comunicación saliente. El parámetro
--proxy-skip-rangese puede usar para especificar el intervalo CIDR y los puntos de conexión en formato separado por comas para que las comunicaciones entre los agentes y estos puntos de conexión no se realicen a través del proxy de salida. Como mínimo, el intervalo CIDR de los servicios del clúster debe especificarse como valor para este parámetro. Por ejemplo, supongamos quekubectl get svc -Adevuelve una lista de servicios donde todos los servicios tienen valores ClusterIP en el intervalo10.0.0.0/16. A continuación, el valor que se va a especificar para--proxy-skip-rangees10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc. --proxy-http--proxy-httpsy--proxy-skip-rangese esperan para la mayoría de los entornos de proxy de salida.--proxy-certsolo se necesita si hay que insertar en el almacén de certificados de confianza de pods del agente certificados de confianza que espera el proxy.- El proxy de salida debe configurarse para permitir conexiones de WebSocket.
- Algunas solicitudes de red, como las que implican la comunicación entre servicios en el clúster, deben separarse del tráfico que se enruta a través del servidor proxy para la comunicación saliente. El parámetro
5. Comprobación de la conexión del clúster
Ejecute el siguiente comando:
az connectedk8s list --resource-group AzureArcTest --output table
Salida:
Name Location ResourceGroup ------------- ---------- --------------- AzureArcTest1 eastus AzureArcTest
Nota
Después de la incorporación del clúster, los metadatos del mismo (versión del clúster, versión del agente, número de nodos, etc.) tardan entre 5 y 10 minutos en aparecer en la página de información general del recurso de Kubernetes compatible con Azure Arc en Azure Portal.
6. Visualización de agentes de Azure Arc para Kubernetes
Kubernetes habilitado para Azure Arc implementa varios operadores en el espacio de nombres azure-arc.
Para ver estas implementaciones y pods, utilice:
kubectl get deployments,pods -n azure-arcCompruebe que todos los pods están en el estado
Running.Salida:
NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/cluster-metadata-operator 1/1 1 1 16h deployment.apps/clusteridentityoperator 1/1 1 1 16h deployment.apps/config-agent 1/1 1 1 16h deployment.apps/controller-manager 1/1 1 1 16h deployment.apps/flux-logs-agent 1/1 1 1 16h deployment.apps/metrics-agent 1/1 1 1 16h deployment.apps/resource-sync-agent 1/1 1 1 16h NAME READY STATUS RESTART AGE pod/cluster-metadata-operator-7fb54d9986-g785b 2/2 Running 0 16h pod/clusteridentityoperator-6d6678ffd4-tx8hr 3/3 Running 0 16h pod/config-agent-544c4669f9-4th92 3/3 Running 0 16h pod/controller-manager-fddf5c766-ftd96 3/3 Running 0 16h pod/flux-logs-agent-7c489f57f4-mwqqv 2/2 Running 0 16h pod/metrics-agent-58b765c8db-n5l7k 2/2 Running 0 16h pod/resource-sync-agent-5cf85976c7-522p5 3/3 Running 0 16h
7. Limpieza de recursos
Para eliminar el recurso Kubernetes habilitado para Azure Arc, todos los recursos de configuración asociados y todos los agentes que se ejecuten en el clúster mediante la CLI de Azure, utilice el siguiente comando:
az connectedk8s delete --name AzureArcTest1 --resource-group AzureArcTest
Nota
Si se usa Azure Portal para eliminar el recurso Kubernetes habilitado para Azure Arc, se eliminan todos los recursos de configuración asociados, pero no se elimina ningún agente que se ejecute en el clúster. El procedimiento recomendado es eliminar el recurso de Kubernetes habilitado para Azure Arc mediante az connectedk8s delete en lugar de Azure Portal.
Pasos siguientes
En el siguiente artículo aprenderá a implementar configuraciones en un clúster de Kubernetes conectado mediante GitOps.