Guía de inicio rápido sobre la instalación de la ejecución de Anthos en modo desconectado

La ejecución de Anthos en modo desconectado es una versión de Anthos que puede ejecutarse completamente aislada de Internet en un entorno aislado. Puedes usar la ejecución de Anthos en modo desconectado a fin de ejecutar cargas de trabajo altamente reguladas en tu entorno local y, al mismo tiempo, aprovechar muchas de las ventajas de la infraestructura compilada para la nube.

Alcance de la guía de inicio rápido del modo privado de Anthos

En esta guía de inicio rápido, se te guiará a través de la instalación de la ejecución de Anthos en modo desconectado como operador de infraestructura, responsable de la capa de la infraestructura, como las máquinas físicas, las herramientas de redes, el almacenamiento y el sistema operativo. En esta guía de inicio rápido, aprenderás a realizar las siguientes tareas:

  • Instala y configura la ejecución de Anthos en modo desconectado con el enfoque de instalación mínima.
  • Implementar un clúster de administrador.
  • Crea un clúster de usuario y, luego, implementa una aplicación en el clúster de usuario

La ejecución de Anthos en modo desconectado tiene dos tipos de clústeres:

  • Los clústeres de administrador se usan para crear y administrar clústeres de usuarios.
  • Los clústeres de usuario ejecutan las cargas de trabajo.

También tienes una estación de trabajo de administrador, que es una sola máquina que contiene las herramientas necesarias para instalar y administrar la ejecución de Anthos en modo desconectado.

Antes de comenzar

Asegúrate de cumplir con los requisitos técnicos para la ejecución de Anthos en modo desconectado y tener cinco o más máquinas que estén listas para usarse. Para esta guía de inicio rápido, se necesita experiencia previa en administración del sistema y Kubernetes.

Prepare el entorno

Obtén acceso a la ejecución de Anthos en modo desconectado

Google debe otorgarte acceso a las versiones de la ejecución de Anthos en modo desconectado. Proporciona tu punto de contacto de Google con una dirección de correo electrónico para cada verificador para que podamos otorgarle acceso al repositorio de descargas. Estas direcciones de correo electrónico deben ser Cuentas de Google.

Después de que el punto de contacto de Google confirme que tienes acceso a las versiones de la ejecución de Anthos en modo desconectado, verifica que tengas los permisos para descargar las versiones la ejecución de Anthos en modo desconectado mediante la ejecución del siguiente comando:

gsutil ls gs://anthos-private-mode-release/

Si obtienes un error, ejecuta el comando gcloud auth list para verificar que gsutil use la misma Cuenta de Google que proporcionaste a tu punto de contacto de Google.

Como alternativa, puedes visitar el bucket de la versión más reciente para verificar que tengas los permisos correctos. Debes acceder con la Cuenta de Google que proporcionaste antes.

Si tienes problemas para acceder a las versiones la ejecución de Anthos en modo desconectado, comunícate con tu punto de contacto de Google para obtener ayuda.

Descarga la ejecución de Anthos en modo desconectado

En esta sección, debes descargar la versión de ejecución de Anthos en modo desconectado, que se encuentra en varios archivos de varios gigabytes cada uno. Según tu conexión a Internet, es posible que la descarga demore mucho tiempo.

Descarga la ejecución de Anthos en modo desconectado

En tu estación de trabajo de administrador, ejecuta los siguientes comandos:

# Login with the account granted access to Anthos running in disconnected mode
gcloud auth login

# Download the script which helps download all the latest components
export VERSION=1.12.0-gke.0

# Please use official 'INSTALLER_DIGEST' value from https://cloud.google.com/anthos/private-mode/docs/1.11/installing/infrastructure#download
export INSTALLER_DIGEST=53275103489dd7569a321da5f70d78cad00a9e3b6a550202200ede37d51d4d3e
export INSTALLER=get-anthos-private-mode-$VERSION.sh
gsutil cp gs://anthos-private-mode-release/$VERSION/$INSTALLER .
if [[ -n "$INSTALLER_DIGEST" ]]; then echo "$INSTALLER_DIGEST $INSTALLER" | sha256sum -c; fi && chmod +x $INSTALLER && ./$INSTALLER

# If you are working on a workstation shared with other users,
# we recommend that you revoke your credentials after downloading the release.
gcloud auth revoke YOUR_EMAIL_ADDRESS

Instala las dependencias restantes

Una vez que se complete la descarga de la ejecución de Anthos en modo desconectado, ejecuta los siguientes comandos:

cd anthos-baremetal-private-mode

# Add actl command line tool and tools directory to the PATH
export PATH=$PWD/bin:$PATH

# Download Harbor offline installer
curl -SL \
  https://github.com/goharbor/harbor/releases/download/v2.2.0/harbor-offline-installer-v2.2.0.tgz \
  --output "local-registry/harbor-offline-installer.tgz"

# Install docker-compose
curl -SL \
  https://github.com/docker/compose/releases/download/1.28.5/docker-compose-Linux-x86_64 \
  --output "local-registry/docker-compose"

No volverás a necesitar una conexión a Internet hasta que implementes la app de demostración.

Configura el Container Registry local

La ejecución de Anthos en modo desconectado funciona mediante el almacenamiento de las imágenes de contenedor de Anthos en un registro de contenedor local.

Exporta las siguientes variables de entorno.

export REGISTRY_HOST=REGISTRY_HOST
export REGISTRY_PASSWORD=REGISTRY_PASSWORD

# By default, a library public project is created,
# and you can also create other private projects via the container registry portal.
export PRIVATE_REGISTRY=${REGISTRY_HOST}/library

Reemplaza lo siguiente:

  • REGISTRY_HOST es la dirección IP de tu registro. Si deseas instalar y usar el registro de contenedores de la ejecución de Anthos en modo de desconexión en la estación de trabajo de administrador, usa la dirección IP de la estación de trabajo de administrador aquí.

  • REGISTRY_PASSWORD es el valor que estableciste para la contraseña de registro.

Configura el registro de contenedores de la ejecución de Anthos en modo desconectado

En esta sección, configurarás un registro de contenedores privado en la estación de trabajo de administrador. Ejecuta todos los comandos que aparecen a continuación desde la estación de trabajo de administrador.

  1. Si no tienes tu propio registro de contenedores privado, instala el registro de contenedor de ejecución de Anthos en modo desconectado.

    cd ~/anthos-baremetal-private-mode
    
    # Move it to a path under $PATH
    chmod a+x local-registry/docker-compose
    sudo cp local-registry/docker-compose /usr/bin
    
    # Install local registry
    ./local-registry/install.sh
    
  2. Accede al registro para verificar que tienes acceso. Es posible que debas esperar unos segundos si recibes un error.

    docker login ${REGISTRY_HOST} -u admin -p ${REGISTRY_PASSWORD}
    

Container Registry está disponible en https://REGISTRY_HOST/ después de que se inicia el servicio. Las credenciales de acceso son el nombre de usuario admin y REGISTRY_PASSWORD para la contraseña.

Sube imágenes a Container Registry

En esta sección, subirás las imágenes de contenedor de ejecución de Anthos en modo desconectado a tu Container Registry.

Prepara y sube las imágenes de contenedor de ejecución de Anthos en modo desconectado a Container Registry. Si se te solicita, elige la opción Use that credential o ingresa las credenciales nuevas.

actl images push --private-registry=${PRIVATE_REGISTRY} \
    --images ~/anthos-baremetal-private-mode

Nota: Si usas un proxy HTTP en tu estación de trabajo, es posible que debas anular las siguientes variables de entorno para que funcione el comando actl images push:

unset http_proxy
unset https_proxy
unset HTTP_PROXY
unset HTTPS_PROXY

Instala el centro de administración

En esta sección, debes instalar un clúster de administrador de Anthos en equipos físicos y, luego, debes instalar el centro de administración del modo privado de Anthos sobre el clúster de administrador.

Prepara la configuración del clúster de administrador

Actualiza el archivo ./actl-workspace/admin/admin.yaml con la configuración que coincide con tu entorno.

vi ./actl-workspace/admin/admin.yaml

Completa los siguientes campos:

  • La sshPrivateKeyPath es la clave que se usa durante la instalación para acceder a los otros nodos que serán parte del clúster. Esta es la mitad privada de la clave pública que distribuiste a los nodos en los requisitos previos.

  • La registryMirrors identifica la ubicación de la duplicación de todo el registro en la que se almacenan las imágenes de Docker.

    • registryMirrors.endpoint es el extremo de la duplicación. El formato del extremo es URL_SCHEME://REGISTRY_HOST/v2/IMAGE_PREFIX . Por ejemplo, si creaste el registro en la estación de trabajo, establece el extremo en https://REGISTRY_HOST/v2/library. Ten en cuenta que /v2/ entre REGISTRY_HOST y IMAGE_PREFIX es necesario.

    • registryMirrors.pullCredentialConfigPath es la ruta de las credenciales. Por lo general, es similar al siguiente ejemplo: /home/USER/.docker/config.json.

    • registryMirrors.caCertPath es la ubicación de la autoridad certificadora que usará el registro para encriptar el tráfico. Este certificado se distribuye a los nodos durante el proceso de instalación para que puedan extraer imágenes del registro. Por lo general, la ruta es /etc/docker/certs.d/REGISTRY_HOST/ca.crt.

  • La especificación controlPlane define qué nodos forman parte del plano de control.

    controlPlane:
      nodePoolSpec:
        nodes:
        # Control plane node pools. Typically, this is either a single machine
        # or 3 machines if using a high availability deployment.
        - address: 10.200.0.3
    
  • La especificación loadBalancer define qué tipo de balanceador de cargas se usa. La configuración predeterminada instala un balanceador de cargas en el clúster en ejecución. En este caso, como mínimo, debes configurar controlPlaneVIP para identificar un grupo de direcciones IP virtual (VIP) a fin de exponer el servidor de la API de Kubernetes y los addressPools para asignar VIP según demanda para los servicios que los solicitan. Por ejemplo:

    loadBalancer:
      mode: bundled
      # There are two load balancer VIPs: one for the control plane and one for the
      # Layer 7 Ingress service.
      # The VIPs must be in the same subnet as the load balancer nodes.
      vips:
        # ControlPlaneVIP specifies the VIP to connect to the Kubernetes API server.
        # This address must not be in the address pools below.
        controlPlaneVIP: 10.200.0.50
      # AddressPools is a list of non-overlapping IP ranges for the data plane load
      # balancer.
      # All addresses must be in the same subnet as the load balancer nodes.
      # Address pool configuration is only valid for 'bundled' LB mode in non-admin
      # clusters.
      addressPools:
      - name: pool1
        addresses:
        # Each address must be either in the CIDR form (1.2.3.0/24)
        # or range form (1.2.3.1-1.2.3.5).
        - 10.200.0.51-10.200.0.59
    
  • En la última sección de la especificación del clúster se especifica el loginUser. Este acceso debe tener acceso a la clave SSH especificada a continuación y es el usuario para el que se distribuye la clave en los requisitos previos.

    nodeAccess:
      loginUser: LOGIN_USERNAME
    

    Reemplaza LOGIN_USERNAME por el nombre de usuario que se usa para acceder al clúster de usuario.

  • La especificación nodePool identifica los nodos que alojarán la consola del centro de administración, Prometheus, Grafana y otros servicios en el clúster de administrador. Estos son los nodos trabajadores del clúster de administrador. Por ejemplo:

    apiVersion: baremetal.cluster.gke.io/v1
    kind: NodePool
    metadata:
      name: node-pool-1
      namespace: cluster-admin
    spec:
      # Cannot be changed, must be admin
      clusterName: admin
      nodes:
      - address: 10.200.0.6
    

Crea el clúster de administrador:

Ejecuta el siguiente comando para crear el clúster de administrador. Lleva alrededor de 30 minutos.

cd ~/anthos-baremetal-private-mode
actl clusters baremetal create admin

Una vez que se cree el clúster de administrador, verifique que tenga acceso a él.

export ADMIN_KUBECONFIG=$(pwd)/bmctl-workspace/admin/admin-kubeconfig
KUBECONFIG=${ADMIN_KUBECONFIG} kubectl get nodes

Instala el centro de administración

  1. Instala el Centro de administración en el clúster de administrador con la configuración predeterminada.

    cd ~/anthos-baremetal-private-mode
    actl platform management-center create
    
  2. Accede al centro de administración de Anthos en tu navegador.

    actl platform management-center describe --kubeconfig=${ADMIN_KUBECONFIG}
    

Se muestra la URL del Centro de administración de Anthos.

Registra recursos

Registra máquinas de inventario

Para crear un clúster de usuario, Anthos necesita un grupo de máquinas inactivas disponibles. En esta sección, registrarás las máquinas de inventario en el clúster de administrador de Anthos para que estén disponibles.

kubectl apply -f <path/to/example-machine.yaml> --kubeconfig=${ADMIN_KUBECONFIG}

Ejemplo:

apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: InventoryMachine
metadata:
  name: IP_ADDRESS
  labels:
    "KEY": "VALUE"
spec:
  address: IP_ADDRESS

Reemplaza lo siguiente:

  • IP_ADDRESS: Es la dirección IP de la máquina, por ejemplo, 10.200.0.10.
  • KEY:VALUE: Un par clave-valor, por ejemplo "rack": "r1020", para indicar una ubicación de bastidor.

Los labels son pares clave-valor de formato libre que se conectan al recurso. Estas etiquetas se pueden usar más adelante en el centro de administración para filtrar máquinas. Por ejemplo, puedes usar las etiquetas para identificar la configuración de la ubicación del bastidor o la configuración especial de hardware.

Crear clústeres de usuario

En la página Clústeres del Centro de administración, haz clic en Crearpara crear un clúster de usuario de Anthos nuevo. Una vez que se crea el clúster, se registra de forma automática en el centro de administración y aparece en el panel del clúster de inmediato.

Crea un clúster

La instalación y preparación puede tardar hasta 15 minutos. Mientras esperas, puedes verificar el estado del clúster de usuario con el siguiente comando:

kubectl get Cluster -n USER_CLUSTER_NAME --kubeconfig=${ADMIN_KUBECONFIG}

Reemplaza USER_CLUSTER_NAME por el nombre del clúster que creaste.

Una vez que el estado esté listo, el clúster se crea y se registra de forma correcta en el clúster de administrador.

Obtén acceso al clúster de usuario

Una vez que se crea el clúster de usuario, puedes descargar kubeconfig a través del Centro de administración.

Implementa una app de demostración

Para explorar la ejecución de Anthos en modo desconectado, prueba la aplicación de ejemplo Online Boutique.

Descarga la imagen

Para realizar los pasos de esta sección, se requiere una conexión a Internet.

  1. Descarga el repositorio de muestra:

    git clone https://github.com/GoogleCloudPlatform/microservices-demo.git/ online-boutique
    
  2. Cómo descargar las imágenes

    IMAGES=$(cat online-boutique/release/kubernetes-manifests.yaml | grep image | sed "s/ *image: //")
    actl images save --output online-boutique-images ${IMAGES}
    

Implemente la muestra

  1. Envía las imágenes al registro privado:

    actl images push --images online-boutique-images --private-registry=PRIVATE_REGISTRY
    

    Reemplaza PRIVATE_REGISTRY por el nombre de tu clúster privado.

  2. Crea un espacio de nombres para la aplicación:

    kubectl create namespace demo --kubeconfig=USER_CLUSTER_KUBECONFIG
    

    Reemplaza USER_CLUSTER_KUBECONFIG por la ruta de acceso al archivo Kubeconfig del clúster de usuario.

  3. Implementa la muestra en el clúster:

    kubectl apply -n demo -f online-boutique/release/ --kubeconfig=USER_CLUSTER_KUBECONFIG
    
    .

Online Boutique con recursos insuficientes

Realiza una limpieza

Borra tu clúster de usuario mediante la ejecución del siguiente comando:

kubectl -n cluster-USER_CLUSTER_NAME \
  delete Cluster USER_CLUSTER_NAME --kubeconfig=ADMIN_KUBECONFIG

¿Qué sigue?