Instala herramientas dependientes y verifica el clúster

En esta página, se muestra cómo preparar tu entorno y clúster para instalar Cloud Service Mesh en el clúster para cargas de trabajo de Kubernetes fuera de Google Cloud.

Instala las herramientas requeridas

Puedes ejecutar asmcli en Cloud Shell o en tu máquina local que ejecuta Linux. Cloud Shell instala previamente todas las herramientas necesarias.

Si ejecutas asmcli de forma local, asegúrate de tener instaladas las siguientes herramientas:

  • Google Cloud CLI
  • Las herramientas de línea de comandos estándar: awk, curl, grep, sed y tr
  • git
  • kubectl
  • jq
  • (Opcional, para probar la conectividad) netcat (nc)

Configura gcloud

Sigue estos pasos incluso si usas Cloud Shell.

  1. Autentica con Google Cloud CLI

    gcloud auth login --project PROJECT_ID
    
  2. Actualiza los componentes:

    gcloud components update
    

Configura el contexto actual en tu clúster de usuario:

Establece el contexto de kubectl para que apunte a tu clúster fuera de Google Cloud, según las instrucciones específicas de la plataforma.

Descarga asmcli

En esta sección, se describe cómo descargar la asmcli.

  1. Descarga la versión que instala Cloud Service Mesh 1.21.5 en el directorio de trabajo actual:

    curl https://storage.googleapis.com/csm-artifacts/asm/asmcli_1.21 > asmcli
    

    Resultado esperado:

    % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
    100  167k  100  167k    0     0   701k      0 --:--:-- --:--:-- --:--:--  701k
    
  2. Haz que la secuencia de comandos sea ejecutable:

    chmod +x asmcli
    

Otorga permisos de administrador del clúster

  1. Asegúrate de haber establecido el contexto como tu clúster de usuario:

    kubectl config use-context CONTEXT
  2. Otorga permisos de administrador de clúster a tu cuenta de usuario (tu dirección de correo electrónico de acceso de Google Cloud). Estos permisos son obligatorios para crear las reglas de control de acceso basado en funciones (RBAC) necesarias para Cloud Service Mesh:

    kubectl create clusterrolebinding cluster-admin-binding \
      --clusterrole=cluster-admin \
      --user=USER_ACCOUNT

Valida el proyecto y el clúster

Puedes ejecutar asmcli validate para asegurarte de que tu proyecto y clúster estén configurados según sea necesario para instalar Cloud Service Mesh. Con esta opción, asmcli no realiza ningún cambio en tu proyecto o clúster y no instala Cloud Service Mesh.

asmcli valida lo siguiente:

De forma predeterminada, asmcli descarga y extrae el archivo de instalación, y descarga el paquete de configuración asm de GitHub a un directorio temporal. Antes de salir, asmcli muestra un mensaje que proporciona el nombre del directorio temporal. Te recomendamos que especifiques un directorio para las descargas con la opción --output_dir DIR_PATH. La opción --output_dir facilita el uso de la herramienta de línea de comandos de istioctl. Es posible que necesites istioctl para solucionar problemas de configuración. Además, los archivos de configuración para habilitar funciones opcionales que usan asmcli se incluyen en el directorio asm/istio/options.

Ejecuta el siguiente comando para validar tu configuración y descargar el archivo de instalación, y el paquete asm en el directorio OUTPUT_DIR:

Usa el siguiente comando para ejecutar asmcli validate en las siguientes plataformas: Google Distributed Cloud (solo software) para VMware, Google Distributed Cloud (solo software) para Bare Metal, GKE en AWS, GKE en Azure, Amazon EKS y Microsoft AKS.

  1. Configura el contexto actual en tu clúster de usuario:

    kubectl config use-context CLUSTER_NAME
    
  2. Ejecuta el siguiente comando para validar tu configuración y descargar el archivo de instalación, y el paquete asm en el directorio OUTPUT_DIR:

    ./asmcli validate \
       --kubeconfig KUBECONFIG_FILE \
       --fleet_id FLEET_PROJECT_ID \
       --output_dir DIR_PATH \
       --platform multicloud
    
    • --kubeconfig es la ruta a kubeconfig. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.

    • --fleet_id El ID del proyecto host de la flota. asmcli validate verifica que el clúster esté registrado en la flota especificada.

    • --output_dir: Incluye esta opción para especificar un directorio en el que asmcli descarga el paquete asm y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.

    • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.

Si se ejecuta de forma correcta, asmcli muestra lo siguiente:

asmcli: Setting up necessary files...
asmcli: Using asm_kubeconfig as the kubeconfig...
asmcli: Checking installation tool dependencies...
asmcli: Fetching/writing GCP credentials to kubeconfig file...
asmcli: Verifying connectivity (10s)...
asmcli: kubeconfig set to asm_kubeconfig
asmcli: using context gke_example-project-12345_us-central1_cluster-2
asmcli: Getting account information...
asmcli: Downloading ASM..
asmcli: Downloading ASM kpt package...
fetching package "/asm" from "https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages" to "asm"
asmcli: Checking required APIs...
asmcli: Checking for project example-project-12345...
asmcli: Reading labels for us-central1/cluster-2...
asmcli: Checking for istio-system namespace...
asmcli: Confirming node pool requirements for example-project-12345/us-central1/cluster-2...
asmcli: Checking Istio installations...
asmcli: [WARNING]: There is no way to validate that the meshconfig API has been initialized.
asmcli: [WARNING]: This needs to happen once per GCP project. If the API has not been initialized
asmcli: [WARNING]: for example-project-12345, please re-run this tool with the --enable_gcp_components
asmcli: [WARNING]: flag. Otherwise, installation will succeed but Anthos Service Mesh
asmcli: [WARNING]: will not function correctly.
asmcli: Successfully validated all requirements to install ASM.

Si una de las pruebas no pasa la validación, asmcli muestra un mensaje de error. Por ejemplo, si tu proyecto no tiene habilitadas todas las API de Google necesarias, verás el siguiente error:

ERROR: One or more APIs are not enabled. Please enable them and retry, or run
`asmcli` with the '--enable_gcp_apis' flag to allow `asmcli` to enable them
on your behalf.

Si recibiste un mensaje de error que indica que debes ejecutar asmcli con una marca de habilitación, tienes las siguientes opciones:

  • Incluye la marca específica del mensaje de error o la marca --enable_all cuando ejecutes asmcli para realizar la instalación real.

  • Si lo prefieres, puedes actualizar tu proyecto y clúster antes de ejecutar asmcli como se describe en Configura tu proyecto y clúster de GKE.

Ten en cuenta que asmcli validate no permite ninguna marca de habilitación porque solo valida que tu proyecto y clúster estén listos para la instalación.

Inspecciona los requisitos de instalación y actualización del clúster

Antes de realizar la actualización, debes verificar que la configuración sea compatible con la nueva versión de Cloud Service Mesh.

  1. Cambia al directorio que especificaste en --output_dir.

  2. Ejecuta el siguiente comando para inspeccionar el clúster de Kubernetes en busca de requisitos de instalación y actualización. Asegúrate de usar la versión de istioctl distribuida con la nueva versión de Cloud Service Mesh.

    istioctl experimental precheck
    

Próximos pasos