Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
- Implemente un clúster de Kubernetes de Azure Nexus mediante la CLI de Azure.
Antes de empezar
Si no tiene una cuenta de Azure, cree una cuenta gratuita antes de comenzar.
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Introducción a Azure Cloud Shell.
Si prefieres ejecutar comandos de referencia CLI localmente, instala la CLI de Azure. Si estás utilizando Windows o macOS, considera ejecutar Azure CLI en un contenedor Docker. Para obtener más información, consulte Cómo ejecutar el Azure CLI en un contenedor de Docker.
Si estás utilizando una instalación local, inicia sesión en Azure CLI utilizando el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Autenticación en Azure mediante la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para obtener más información sobre las extensiones, consulte Uso y administración de extensiones con la CLI de Azure.
Ejecute az version para ver la versión y las bibliotecas dependientes que están instaladas. Para actualizar a la versión más reciente, ejecute az upgrade.
Instale la versión más reciente de las extensiones de la CLI de Azure necesarias.
En este artículo se requiere la versión 2.61.0 o posterior de la CLI de Azure. Si usa Azure Cloud Shell, ya está instalada la versión más reciente.
Si tiene varias suscripciones de Azure, seleccione el identificador de suscripción adecuado en el que se deben facturar los recursos mediante el
az accountcomando .Consulte la tabla de SKU de máquina virtual en la sección de referencia para la lista de los SKU de máquina virtual admitidos.
Consulte las versiones admitidas de Kubernetes para obtener la lista de versiones de Kubernetes admitidas.
Cree un grupo de recursos con el comando
az group create. Un grupo de recursos de Azure es un grupo lógico en el que se implementan y administran recursos de Azure. Cuando crea un grupo de recursos, se le pide que especifique una ubicación. Esta ubicación es la ubicación de almacenamiento de los metadatos del grupo de recursos y donde se ejecutan los recursos en Azure si no se especifica otra región durante la creación de recursos. En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación eastus.az group create --name myResourceGroup --location eastusEl siguiente ejemplo de salida se asemeja a la creación exitosa del grupo de recursos.
{ "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup", "location": "eastus", "managedBy": null, "name": "myResourceGroup", "properties": { "provisioningState": "Succeeded" }, "tags": null }Para implementar un archivo de Bicep o una plantilla de ARM, necesitas acceso de escritura en los recursos que estás implementando y acceso para realizar todas las operaciones en el tipo de recurso Microsoft.Resources/deployments. Por ejemplo, para implementar un clúster, necesita permisos Microsoft.NetworkCloud/kubernetesclusters/write y Microsoft.Resources/deployments/*. Para obtener una lista de roles y permisos, consulte Roles integrados de Azure.
Necesitas el ID de recurso del clúster de Azure Operator Nexus.
Debe crear varias redes según los requisitos específicos de la carga de trabajo y es esencial tener las direcciones IP adecuadas disponibles para las cargas de trabajo. Para garantizar una implementación fluida, es aconsejable consultar a los equipos de soporte técnico pertinentes para obtener ayuda.
En esta guía rápida se presupone un conocimiento básico de los conceptos de Kubernetes. Para más información, consulte Conceptos básicos de Kubernetes de Azure Kubernetes Service (AKS).
Creación de un clúster de Kubernetes de Azure Nexus
En el ejemplo siguiente se crea un clúster denominado myNexusK8sCluster en el grupo de recursos myResourceGroup en la ubicación eastus .
Antes de ejecutar los comandos, debe establecer varias variables para definir la configuración del clúster. Estas son las variables que debe establecer, junto con algunos valores predeterminados que puede usar para determinadas variables:
| Variable | Description |
|---|---|
| UBICACIÓN | Región de Azure en la que desea crear el clúster. |
| GRUPO_DE_RECURSOS | Nombre del grupo de recursos de Azure donde desea crear el clúster. |
| SUBSCRIPTION_ID | Identificador de la suscripción de Azure. |
| UBICACIÓN_PERSONALIZADA | Este argumento especifica una ubicación personalizada de la instancia de Nexus. |
| CSN_ARM_ID | El identificador de CSN es el identificador único de la red de servicios en la nube que desea usar. |
| CNI_ARM_ID | El identificador de CNI es el identificador único de la interfaz de red que usará el entorno de ejecución del contenedor. |
| AAD_ADMIN_GROUP_OBJECT_ID | Identificador de objeto del grupo Microsoft Entra que debe tener privilegios de administrador en el clúster. |
| CLUSTER_NAME | El nombre que quiere asignar al clúster de Nexus Kubernetes. |
| K8S_VERSION | La versión de Kubernetes que desea usar. |
| ADMIN_USERNAME | Nombre de usuario del administrador del clúster. |
| Llave pública SSH (SSH_PUBLIC_KEY) | Clave pública SSH que se usa para la comunicación segura con el clúster. |
| CONTROL_PLANE_COUNT | Número de nodos del plano de control para el clúster. |
| CONTROL_PLANE_VM_SIZE | Tamaño de la máquina virtual para los nodos del plano de control. |
| INITIAL_AGENT_POOL_NAME | Nombre del grupo de agentes inicial. |
| RECUENTO_INICIAL_DE_POOL_DE_AGENTES | Número de nodos del grupo de agentes inicial. |
| TAMANO_INICIAL_GRUPO_AGENTES_VM | Tamaño de la máquina virtual del grupo de agentes inicial. |
| POD_CIDR | Rango de red para los pods de Kubernetes en el clúster, en notación CIDR. |
| SERVICE_CIDR | Intervalo de red para los servicios de Kubernetes en el clúster, en notación CIDR. |
| DNS_SERVICE_IP | Dirección IP del servicio DNS de Kubernetes. |
Una vez que haya definido estas variables, puede ejecutar el comando de la CLI de Azure para crear el clúster. Agregue la --debug marca al final para proporcionar una salida más detallada con fines de solución de problemas.
Para definir estas variables, use los siguientes comandos set y reemplace los valores de ejemplo por sus valores preferidos. También puede usar los valores predeterminados para algunas de las variables, como se muestra en el ejemplo siguiente:
RESOURCE_GROUP="myResourceGroup"
SUBSCRIPTION_ID="<Azure subscription ID>"
LOCATION="$(az group show --name $RESOURCE_GROUP --query location --subscription $SUBSCRIPTION_ID -o tsv)"
CUSTOM_LOCATION="/subscriptions/<subscription_id>/resourceGroups/<managed_resource_group>/providers/microsoft.extendedlocation/customlocations/<custom-location-name>"
CSN_ARM_ID="/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/cloudServicesNetworks/<csn-name>"
CNI_ARM_ID="/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/l3Networks/<l3Network-name>"
AAD_ADMIN_GROUP_OBJECT_ID="00000000-0000-0000-0000-000000000000"
CLUSTER_NAME="myNexusK8sCluster"
K8S_VERSION="v1.24.9"
ADMIN_USERNAME="azureuser"
SSH_PUBLIC_KEY="$(cat ~/.ssh/id_rsa.pub)"
CONTROL_PLANE_SSH_PUBLIC_KEY="$(cat ~/.ssh/id_rsa.pub)"
AGENT_POOL_SSH_PUBLIC_KEY="$(cat ~/.ssh/id_rsa.pub)"
CONTROL_PLANE_COUNT="1"
CONTROL_PLANE_VM_SIZE="NC_G6_28_v1"
INITIAL_AGENT_POOL_NAME="${CLUSTER_NAME}-nodepool-1"
INITIAL_AGENT_POOL_COUNT="1"
INITIAL_AGENT_POOL_VM_SIZE="NC_P10_56_v1"
POD_CIDR="10.244.0.0/16"
SERVICE_CIDR="10.96.0.0/16"
DNS_SERVICE_IP="10.96.0.10"
Importante
Es esencial reemplazar los marcadores de posición para CUSTOM_LOCATION, CSN_ARM_ID, CNI_ARM_ID y AAD_ADMIN_GROUP_OBJECT_ID por los valores reales antes de ejecutar estos comandos.
Después de definir estas variables, puede crear el clúster de Kubernetes ejecutando el siguiente comando de la CLI de Azure:
az networkcloud kubernetescluster create \
--name "${CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--subscription "${SUBSCRIPTION_ID}" \
--extended-location name="${CUSTOM_LOCATION}" type=CustomLocation \
--location "${LOCATION}" \
--kubernetes-version "${K8S_VERSION}" \
--aad-configuration admin-group-object-ids="[${AAD_ADMIN_GROUP_OBJECT_ID}]" \
--admin-username "${ADMIN_USERNAME}" \
--ssh-key-values "${SSH_PUBLIC_KEY}" \
--control-plane-node-configuration \
count="${CONTROL_PLANE_COUNT}" \
vm-sku-name="${CONTROL_PLANE_VM_SIZE}" \
ssh-key-values='["${CONTROL_PLANE_SSH_PUBLIC_KEY}"]' \
--initial-agent-pool-configurations "[{count:${INITIAL_AGENT_POOL_COUNT},mode:System,name:${INITIAL_AGENT_POOL_NAME},vm-sku-name:${INITIAL_AGENT_POOL_VM_SIZE},ssh-key-values:['${AGENT_POOL_SSH_PUBLIC_KEY}']}]" \
--network-configuration \
cloud-services-network-id="${CSN_ARM_ID}" \
cni-network-id="${CNI_ARM_ID}" \
pod-cidrs="[${POD_CIDR}]" \
service-cidrs="[${SERVICE_CIDR}]" \
dns-service-ip="${DNS_SERVICE_IP}"
Si no hay suficiente capacidad para implementar nodos de clúster solicitados, aparece un mensaje de error. Sin embargo, este mensaje no proporciona detalles sobre la capacidad disponible. Indica que la creación del clúster no puede continuar debido a una capacidad insuficiente.
Nota:
El cálculo de la capacidad tiene en cuenta todo el clúster de la plataforma, en lugar de limitarse a racks individuales. Por lo tanto, si se crea un grupo de agentes en una zona (donde un bastidor equivale a una zona) con capacidad insuficiente, pero otra zona tiene suficiente capacidad, la creación del clúster continúa, pero finalmente se agotará el tiempo de espera. Este enfoque de comprobación de capacidad solo tiene sentido si no se especifica una zona específica durante la creación del clúster o del grupo de agentes.
Después de unos minutos, el comando finaliza y devuelve información sobre el clúster. Para obtener opciones más avanzadas, consulte Inicio rápido: Implementación de un clúster de Kubernetes de Azure Nexus mediante Bicep.
Revisión de los recursos implementados
Una vez finalizada la implementación, puede ver los recursos mediante la CLI o Azure Portal.
Para ver los detalles del myNexusK8sCluster clúster en el myResourceGroup grupo de recursos, ejecute el siguiente comando de Azure CLI:
az networkcloud kubernetescluster show \
--name myNexusK8sCluster \
--resource-group myResourceGroup
Además, para obtener una lista de nombres de los grupos de agentes asociados con el clúster myNexusK8sCluster en el grupo de recursos myResourceGroup, puede usar el siguiente comando de la CLI de Azure.
az networkcloud kubernetescluster agentpool list \
--kubernetes-cluster-name myNexusK8sCluster \
--resource-group myResourceGroup \
--output table
Conectarse al clúster
Ahora que el clúster de Nexus Kubernetes se ha creado correctamente y conectado a Azure Arc, puede conectarse fácilmente a él mediante la característica de conexión del clúster. La conexión de clúster permite acceder y administrar el clúster de forma segura desde cualquier lugar, lo que facilita el desarrollo interactivo, la depuración y las tareas de administración del clúster.
Para obtener información más detallada sobre las opciones disponibles, vea Conectar a un clúster de Kubernetes del Nexus del operador de Azure.
Nota:
Al crear un clúster de Nexus Kubernetes, Nexus crea automáticamente un grupo de recursos administrado dedicado a almacenar los recursos del clúster, dentro de este grupo, se establece el recurso de clúster conectado a Arc.
Para acceder al clúster, debe configurar la conexión del clúster kubeconfig. Después de iniciar sesión en la CLI de Azure con la entidad Microsoft Entra pertinente, puede obtener los kubeconfig necesarios para comunicarse con el clúster desde cualquier lugar, incluso fuera del firewall que lo rodea.
Establezca
CLUSTER_NAME,RESOURCE_GROUPySUBSCRIPTION_IDvariables.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>Consulta el grupo de recursos administrado con
azy almacena enMANAGED_RESOURCE_GROUPaz account set -s $SUBSCRIPTION_ID MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --output tsv --query managedResourceGroupConfiguration.name)El siguiente comando inicia un proxy connectedk8s que permite conectarse al servidor de API de Kubernetes para el clúster de Nexus Kubernetes especificado.
az connectedk8s proxy -n $CLUSTER_NAME -g $MANAGED_RESOURCE_GROUP &Use
kubectlpara enviar solicitudes al clúster:kubectl get pods -AAhora debería ver una respuesta del clúster que contiene la lista de todos los nodos.
Nota:
Si ve el mensaje de error "No se pudo publicar el token de acceso al proxy de cliente, error al conectarse a MSI", es posible que deba realizar una az login para volver a autenticar con Azure.
Adición de un grupo de agentes
El clúster creado en el paso anterior tiene un grupo de nodo único. Vamos a agregar un segundo grupo de agentes mediante el az networkcloud kubernetescluster agentpool create comando . En el ejemplo siguiente se crea un grupo de agentes denominado myNexusK8sCluster-nodepool-2:
También puede usar los valores predeterminados para algunas de las variables, como se muestra en el ejemplo siguiente:
RESOURCE_GROUP="myResourceGroup"
CUSTOM_LOCATION="/subscriptions/<subscription_id>/resourceGroups/<managed_resource_group>/providers/microsoft.extendedlocation/customlocations/<custom-location-name>"
CLUSTER_NAME="myNexusK8sCluster"
AGENT_POOL_NAME="${CLUSTER_NAME}-nodepool-2"
AGENT_POOL_VM_SIZE="NC_P10_56_v1"
AGENT_POOL_COUNT="1"
AGENT_POOL_MODE="User"
Después de definir estas variables, puede agregar un grupo de agentes ejecutando el siguiente comando de la CLI de Azure:
az networkcloud kubernetescluster agentpool create \
--name "${AGENT_POOL_NAME}" \
--kubernetes-cluster-name "${CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--subscription "${SUBSCRIPTION_ID}" \
--extended-location name="${CUSTOM_LOCATION}" type=CustomLocation \
--count "${AGENT_POOL_COUNT}" \
--mode "${AGENT_POOL_MODE}" \
--vm-sku-name "${AGENT_POOL_VM_SIZE}"
Después de unos minutos, el comando finaliza y devuelve información sobre el grupo de agentes. Para obtener opciones más avanzadas, consulte Inicio rápido: Implementación de un clúster de Kubernetes de Azure Nexus mediante Bicep.
Nota:
Puede agregar varios grupos de agentes durante la creación inicial del propio clúster mediante las configuraciones iniciales del grupo de agentes. Sin embargo, si desea agregar grupos de agentes después de la creación inicial, puede usar el comando anterior para crear grupos de agentes adicionales para el clúster de Nexus Kubernetes.
El siguiente ejemplo de salida se parece a la creación exitosa del conjunto de agentes.
$ az networkcloud kubernetescluster agentpool list --kubernetes-cluster-name myNexusK8sCluster --resource-group myResourceGroup --output table
This command is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
Count Location Mode Name ProvisioningState ResourceGroup VmSkuName
------- ---------- ------ ---------------------------- ------------------- --------------- -----------
1 eastus System myNexusK8sCluster-nodepool-1 Succeeded myResourceGroup NC_P10_56_v1
1 eastus User myNexusK8sCluster-nodepool-2 Succeeded myResourceGroup NC_P10_56_v1
Limpieza de recursos
Cuando ya no sea necesario, elimine el grupo de recursos. Se eliminan el grupo de recursos y todos los recursos del grupo de recursos.
Use el comando az group delete para quitar el grupo de recursos, el clúster de Kubernetes y todos los recursos relacionados, excepto los recursos de red de Operator Nexus.
az group delete --name myResourceGroup --yes --no-wait
Pasos siguientes
Ahora puede implementar los CNF directamente a través de la conexión de clúster o a través de Azure Operator Service Manager.