Los clústeres de Anthos alojados en Azure están disponibles para los clientes que tengan una relación de asistencia con Google Cloud. Comunícate con el representante de tu cuenta para obtener acceso.

Guía de inicio rápido

En esta página, se describe cómo crear clústeres de Anthos en un clúster de Azure, un grupo de nodos y cómo implementar una aplicación de muestra.

Antes de comenzar

Antes de crear un clúster, debes completar los requisitos. En particular, debes proporcionar los siguientes recursos:

  • Una red virtual de Azure en la que se ejecutará el clúster
  • Una subred para las réplicas del plano de control de Kubernetes
  • Asignaciones de función de Azure que otorgarán a los clústeres de Anthos en Azure acceso a tu entorno de Azure mediante una principal del servicio
  • Un recurso de AzureClient que los clústeres de Anthos usan en Azure para autenticarse en los servicios de Azure y administrar los recursos en tu cuenta de Azure
  • Un par de claves SSH para acceder a máquinas virtuales de Azure en el clúster

Es tu responsabilidad crear y administrar estos recursos, que se pueden compartir entre todos los clústeres de Anthos en los clústeres de Azure. Los demás clústeres de Anthos administran el resto de los recursos subyacentes de Azure con permisos de clúster.

Establece la configuración predeterminada para la herramienta gcloud

Usa la herramienta de gcloud para establecer la siguiente configuración predeterminada: el proyecto predeterminado y la región de Google Cloud.

Tu proyecto cuenta con un ID del proyecto, que es su identificador único. Cuando creas un proyecto por primera vez, puedes usar el ID del proyecto generado de forma automática o crear el tuyo propio.

La región de Google Cloud es una ubicación desde la que se administrarán los clústeres. Por ejemplo, us-west1. Consulta Regiones de administración para obtener más detalles.

Establecer esta configuración predeterminada simplifica la ejecución de los comandos de gcloud, ya que gcloud requiere que especifiques el proyecto y la ubicación en la que deseas trabajar. También puedes especificar esta configuración o anular la configuración predeterminada con marcas, como --project y --location en los comandos de gcloud.

Cuando creas clústeres de Anthos en recursos de Azure después de configurar tu proyecto y ubicación predeterminados, estos se crean de forma automática en ese proyecto y esa ubicación.

Sigue los siguientes pasos:

  1. Configura el proyecto predeterminado:

    gcloud config set project PROJECT_ID
    

    Reemplaza PROJECT_ID con el ID del proyecto.

  2. Establece la ubicación de administración predeterminada:

    gcloud config set azure/location GOOGLE_CLOUD_LOCATION
    

    Reemplaza GOOGLE_CLOUD_LOCATION por la ubicación, como us-west1.

Selecciona los ID de recursos de Azure para tu clúster.

Selecciona un ID de grupo de recursos

Ejecuta el siguiente comando para determinar el CLUSTER_RESOURCE_GROUP_ID de los recursos del clúster:

az group show --query id --output tsv \
    --resource-group=CLUSTER_RESOURCE_GROUP_NAME \

Reemplaza lo siguiente:

  • CLUSTER_RESOURCE_GROUP_NAME por un nombre de grupo de recursos existente para aprovisionar los recursos del clúster

Copia este valor. La necesitarás más tarde.

Selecciona un ID de red virtual

Ejecuta el siguiente comando para determinar el VNET_ID de tu clúster:

az network vnet show --query id --output tsv \
    --resource-group=VNET_RESOURCE_GROUP_NAME \
    --name=VNET_NAME

Reemplaza lo siguiente:

  • VNET_RESOURCE_GROUP_NAME por un nombre de grupo de recursos existente que contiene tu red virtual
  • VNET_NAME por el nombre de la red virtual

Copia este valor. La necesitarás más tarde.

Selecciona un ID de subred

Ejecuta el siguiente comando para determinar el SUBNET_ID de tu clúster:

az network vnet subnet show --query id --output tsv \
    --resource-group VNET_RESOURCE_GROUP_NAME \
    --vnet-name VNET_NAME \
    --name SUBNET_NAME

Reemplaza lo siguiente:

  • VNET_RESOURCE_GROUP_NAME por un nombre de grupo de recursos existente que contiene tu red virtual
  • VNET_NAME por el nombre de la red virtual
  • SUBNET_NAME por el nombre de la subred

Copia este valor. La necesitarás más tarde.

Selecciona rangos CIDR para el clúster

Kubernetes requiere que se proporcionen dos rangos de CIDR para el clúster. Estos rangos CIDR se deben elegir para que no se superpongan con los rangos CIDR que usan tus subredes de VPC. Deberían ser lo suficientemente grandes para el tamaño máximo esperado de tu clúster.

  • Rango de CIDR de dirección IP: Cuando se crea un Pod nuevo, se le asigna una dirección IP de este rango. Rango de ejemplo: 192.168.208.0/20

  • Rango de CIDR de dirección de servicio: Cuando se crea un Service nuevo, se le asigna una dirección IP de este rango. Rango de ejemplo: 192.168.224.0/20

Crea un clúster

Usa el siguiente comando para crear un clúster en los clústeres de Anthos alojados en Azure.

gcloud container azure clusters create azure-cluster-0 \
    --cluster-version 1.21.5-gke.2800 \
    --azure-region AZURE_REGION \
    --fleet-project FLEET_PROJECT_ID \
    --client CLIENT_NAME \
    --resource-group-id CLUSTER_RESOURCE_GROUP_ID \
    --vnet-id VNET_ID \
    --subnet-id SUBNET_ID
    --pod-address-cidr-blocks POD_CIDR_BLOCK \
    --service-address-cidr-blocks SERVICE_CIDR_BLOCK \
    --ssh-public-key SSH_PUBLIC_KEY \
    --tags "google:gkemulticloud:cluster=azure-cluster-0"

Reemplaza lo siguiente:

  • AZURE_REGION: Es una región de Azure compatible asociada a tu región de Google Cloud.
  • FLEET_PROJECT_ID por el ID del proyecto host fleet en el que se registrará el clúster.
  • CLIENT_NAME: Es el nombre de AzureClient.
  • CLUSTER_RESOURCE_GROUP_ID por el ID del grupo de recursos de Azure para los recursos del clúster
  • VNET_ID por el ID de la red virtual de Azure del clúster
  • SUBNET_ID por el ID de la subred de Azure del clúster
  • POD_CIDR_BLOCK: Es el rango de direcciones de Pods del clúster.
  • SERVICE_CIDR_BLOCK: Es el rango de direcciones de servicio del clúster.
  • SSH_PUBLIC_KEY por el texto de tu clave pública SSH

Para obtener más información y los parámetros opcionales, consulta la página de referencia de gcloud container azure clusters create.

Crea un grupo de nodos

Crea un grupo de nodos con la herramienta de línea de comandos de gcloud:

gcloud container azure node-pools create pool-0 \
    --cluster azure-cluster-0 \
    --node-version 1.21.5-gke.2800 \
    --vm-size Standard_B2s \
    --max-pods-per-node 110 \
    --min-nodes 1 \
    --max-nodes 5 \
    --ssh-public-key SSH_PUBLIC_KEY \
    --subnet-id SUBNET_ID \
    --tags "google:gkemulticloud:cluster=azure-cluster-0"

Reemplaza lo siguiente:

  • SSH_PUBLIC_KEY por el texto de tu clave pública SSH
  • SUBNET_ID por el ID de la subred de Azure

Obtenga las credenciales de autenticación para el clúster

Después de crear su clúster, debe obtener credenciales de autenticación para interactuar con él:

gcloud container azure clusters get-credentials azure-cluster-0

Este comando configura kubectl para acceder al clúster que creaste a través de la puerta de enlace de Connect. Ten en cuenta que se requiere al menos un grupo de nodos para usar la puerta de enlace de Connect, ya que depende del agente de Connect, que se ejecuta como una carga de trabajo en el clúster.

Implementa una aplicación en el clúster

Ahora que ya creó el clúster, puede implementar una aplicación en contenedores en él. Para esta guía de inicio rápido, puedes implementar nuestra aplicación web de ejemplo, hello-app.

Los clústeres de Anthos en Azure usan objetos de Kubernetes para crear y administrar los recursos de tus clústeres. Usa el objeto Deployment para implementar aplicaciones sin estado como servidores web. Los objetos Service definen las reglas y los balanceadores de cargas para acceder a tu aplicación desde Internet.

Crea la implementación

Para ejecutar hello-app en el clúster, debes implementar la aplicación mediante la ejecución del siguiente comando:

kubectl create deployment hello-server --image=us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0

Con este comando de Kubernetes, kubectl create deployment, se crea un Deployment llamado hello-server. El pod del Deployment ejecuta la imagen del contenedor hello-app.

Con este comando, tendrá que hacer lo siguiente:

  • --image especifica la imagen de contenedor para implementar. En este caso, el comando obtiene la imagen de ejemplo desde un repositorio de us-docker.pkg.dev/google-samples/containers/gke/hello-appArtifact Registry. :1.0 indica la versión específica de la imagen que se desea obtener. Si no especificas una versión, se usa la imagen con la latestetiqueta predeterminada .

Expone la implementación

Luego de implementar la aplicación, debes exponerla en Internet para que los usuarios puedan acceder a ella. Para exponer tu aplicación, puedes crear un Servicio, un recurso de Kubernetes que expone tu aplicación al tráfico externo.

Para exponer tu aplicación, debes ejecutar el comando siguiente kubectl expose:

kubectl expose deployment hello-server --type LoadBalancer --port 80 --target-port 8080

Cuando pasas la marca --type LoadBalancer, se crea un balanceador de cargas de Azure para el contenedor. La marca --port inicializa el puerto público 80 a Internet y la marca --target-port direcciona el tráfico al puerto 8080 de la aplicación.

Los balanceadores de cargas se facturan según los precios de los balanceadores de cargas de Azure.

Inspecciona y visualiza la aplicación

  1. Para inspeccionar los pods en ejecución, usa kubectl get pods:

    kubectl get pods
    

    Deberías ver un pod hello-server en ejecución en el clúster.

  2. Inspecciona el servicio hello-server mediante kubectl get service:

    kubectl get service hello-server
    

    Copia la dirección IP externa del Servicio de la columna EXTERNAL-IP que aparece en el resultado del comando.

  3. Para ver la aplicación desde tu navegador web, usa la IP externa con el puerto expuesto:

    http://EXTERNAL-IP
    

Acabas de implementar una aplicación web en contenedores en los clústeres de Anthos alojados en Azure.

Limpia

  1. Borra el Service de la aplicación mediante la ejecución de kubectl delete:

    kubectl delete service hello-server
    

    Con este comando, se borra el balanceador de cargas de Azure que creaste cuando expusiste el objeto Deployment.

  2. Ejecuta gcloud container azure node-pools delete para borrar tu grupo de nodos:

    gcloud container azure node-pools delete pool-0 --cluster azure-cluster-0
    
  3. Si deseas borrar tu clúster, ejecuta gcloud container azure clusters delete:

    gcloud container azure clusters delete azure-cluster-0
    

¿Qué sigue?