Reference

En esta página, se describen los argumentos disponibles para la secuencia de comandos y se proporcionan detalles sobre los cambios que genera la secuencia de comandos en tu proyecto y en el clúster de GKE.

Opciones

-p|--project_id CLUSTER_PROJECT_ID
El ID del proyecto en el que se creó el clúster.
-n|--cluster_name CLUSTER_NAME
Es el nombre del clúster.
-l|--cluster_location CLUSTER_LOCATION
Es la zona (para clústeres de una sola zona) o la región (para clústeres regionales) en la que se creó el clúster.
-m|--mode {install|migrate|upgrade}
Ingresa install si haces una instalación nueva de Anthos Service Mesh. Ingresa migrate si migras desde Istio. Ingresa upgrade para actualizar una instalación existente de Anthos Service Mesh a una versión nueva.
-c|--ca {mesh_ca|citadel}
En las instalaciones nuevas, si deseas usar CA de Mesh, no tienes que incluir esta opción porque la secuencia de comandos se establece en CA de forma predeterminada. Para las actualizaciones, no necesitas incluir esta opción, ya que la secuencia de comandos no te permite cambiar la CA. En el caso de las migraciones, debes especificar citadel o mesh_ca. Si puedes programar el tiempo de inactividad para la migración, te recomendamos que uses mesh_ca. Para obtener más información sobre qué CA usar, consulta Elige una autoridad certificadora. Si deseas ver opciones adicionales que debes especificar cuando usas Citadel, consulta Opciones para un certificado personalizado para Citadel.
--co|--custom_overlay YAML_FILE
El nombre del archivo YAML de recurso personalizado (CR) IstioOperator para habilitar una característica que no está habilitada de forma predeterminada. La secuencia de comandos debe poder ubicar el archivo YAML, por lo que este debe estar en el mismo directorio que la secuencia de comandos, o puedes especificar una ruta de acceso relativa. Para agregar varios archivos, especifica --co|--custom_overlay y el nombre del archivo, por ejemplo: --co overlay_file1.yaml --co overlay_file2.yaml --co overlay_file3.yaml
-o|--option OPTION_FILE
El nombre de un archivo YAML del paquete anthos-service-mesh que contiene el CR IstioOperator para habilitar una característica opcional. Cuando incluyas uno de estos archivos, no necesitas descargar primero el paquete anthos-service-mesh ni especificar la extensión .yaml. Si necesitas modificar alguno de los archivos, descarga el paquete anthos-service-mesh, realiza los cambios y usa la opción --custom_overlay. Para agregar varios archivos, especifica -o|--option y el nombre del archivo, por ejemplo: -o option_file1 -o option_file2 -o option_file3
-s|--service_account ACCOUNT
El nombre de una cuenta de servicio que se usa para instalar Anthos Service Mesh. Si no se especifica, se usa la cuenta de usuario activa en la configuración de gcloud actual. Si necesitas cambiar la cuenta de usuario activa, ejecuta gcloud auth login.
-k|--key_file FILE_PATH
Es el archivo de claves de una cuenta de servicio. Omite esta opción si no usas una cuenta de servicio.
-D|--output_dir DIR_PATH
Si no se especifica, la secuencia de comandos crea un directorio temporal en el que descarga archivos y configuraciones necesarios para instalar Anthos Service Mesh. Especifica la marca --output-dir para designar un directorio existente que se usará en su lugar. Una vez completado, el directorio especificado contiene los subdirectorios asm y istio-1.8.6-asm.8. El directorio asm contiene la configuración de la instalación. El directorio istio-1.8.6-asm.8 tiene el contenido extraído del archivo de instalación, que contiene istioctl, muestras y manifiestos.

Opciones para el certificado personalizado de Citadel

Si especificaste citadel y usas una CA personalizada, incluye las siguientes opciones:

  • --ca_cert FILE_PATH: Es el certificado intermedio.
  • --ca_key FILE_PATH: Es la clave para el certificado intermedio.
  • --root_cert FILE_PATH: Es el certificado raíz.
  • --cert_chain FILE_PATH: Es la cadena de certificados.

Para obtener más información, consulta Conecta Certificados de CA existentes.

Marcas de habilitación

Las marcas que comienzan con --enable dejan que la secuencia de comandos habilite la API de Google, establece los permisos necesarios de administración de identidades y accesos (IAM) y actualiza el clúster. Si lo prefieres, puedes actualizar tu proyecto y clúster antes de ejecutar la secuencia de comandos como se describe en las secciones Configura tu proyecto y Configura tu clúster de la guía de instalación de varios proyectos. Todas estas marcas son incompatibles con --only_validate y la secuencia de comandos finaliza con un error en este caso.

-e|--enable_all
Permite que la secuencia de comandos realice todas las acciones de habilitación individuales que se describen a continuación.
--enable_cluster_roles
Permite que la secuencia de comandos intente vincular el usuario o la cuenta de servicio de GCP que ejecuta la secuencia de comandos a la función cluster-admin en el clúster. La secuencia de comandos determina la cuenta de usuario del comando gcloud config get-value core/account. Si ejecutas la secuencia de comandos de forma local con una cuenta de usuario, asegúrate de llamar al comando gcloud auth login antes de ejecutarla. Si necesitas cambiar la cuenta de usuario, ejecuta el comando gcloud config set core/account GCP_EMAIL_ADDRESS, en el que GCP_EMAIL_ADDRESS es la cuenta que usas para acceder a Google Cloud.
--enable_cluster_labels
Permite que la secuencia de comandos configure etiquetas de clúster requeridas.
--enable_gcp_components

Permite que la secuencia de comandos habilite los siguientes servicios y componentes administrados de Google Cloud requeridos:

--enable_gcp_apis

Permite que la secuencia de comandos habilite todas las API de Google requeridas.

--enable_gcp_iam_roles

Permite que la secuencia de comandos configure los permisos de IAM requeridos.

--enable-registration

Permite que la secuencia de comandos registre el clúster en el proyecto en el que este se encuentra. Si no incluyes esta marca, sigue los pasos en Registra un clúster para registrarlo de forma manual. Ten en cuenta que, a diferencia de las otras marcas de habilitación, --enable-registration no se incluye en --enable_all. Especifica el archivo por separado.

Otras marcas

-v|--verbose
Imprime comandos antes y después de la ejecución.
--dry_run
Imprime comandos, pero no los ejecutes.
--only_validate
Ejecuta la validación, pero no actualices el proyecto o el clúster y no instales Anthos Service Mesh. Esta marca no es compatible con las marcas de habilitación. La secuencia de comandos finaliza con un error si especificas --only_validate con cualquier marca de habilitación.
--print_config
En lugar de instalar Anthos Service Mesh, imprime todos los YAML compilados en resultados estándar (stdout). Todos los demás resultados se escriben en error estándar (stderr), incluso si, por lo general, van con stdout. La secuencia de comandos omite todas las validaciones y la configuración cuando especificas esta marca.
--disable_canonical_service
De forma predeterminada, la secuencia de comandos implementa el controlador del servicio canónico en tu clúster. Si no deseas que la secuencia de comandos implemente el controlador, especifica --disable_canonical_service. Para obtener más información, consulta Habilita o inhabilita el controlador del servicio canónico.
-h|--help
Muestra un mensaje de ayuda que describe las opciones y las marcas, y se cierra.
--version
Imprime la versión de install_asm y se cierra. Si el comando no muestra una versión, descarga la versión más reciente de install_asm_1.8.

Información sobre la secuencia de comandos

Aunque descargues la secuencia de comandos desde una ubicación segura de Cloud Source Repositories, la secuencia de comandos también está disponible en GitHub para que puedas ver lo que hace antes de descargarla. La secuencia de comandos valida que tu proyecto y clúster cumplan con los requisitos de Anthos Service Mesh, y automatiza todos los pasos que harías manualmente para configurar tu proyecto y clúster y, luego, instala Anthos Service Mesh con el comando istioctl install.

Con Anthos Service Mesh 1.8.6, debes usar la versión de la secuencia de comandos install_asm en la rama release-1.8-asm. Para obtener una explicación del control de versiones y el proceso de lanzamiento, consulta Control de versiones y versiones.

Validación

validate_args() {
  if [[ "${MODE}" == "install" && -z "${CA}" ]]; then
    CA="mesh_ca"
  fi

  if is_managed; then
    if [[ "${MODE}" != "install" ]]; then
      fatal "Migrate and upgrade are incompatible with managed control plane."
    fi

    if [[ "${CA}" == "citadel" ]]; then
      fatal "Citadel is not supported with managed control plane."
    fi

    if [[ "${CA}" == "gcp_cas" ]]; then
      fatal "Google Certificate Authority Service integration is not supported with managed control plane."
    fi

    if [[ "${CUSTOM_CA}" -eq 1 ]]; then
      fatal "Specifying a custom CA with managed control plane is not supported."
    fi
  fi

  local MISSING_ARGS=0
  while read -r REQUIRED_ARG; do
    if [[ -z "${!REQUIRED_ARG}" ]]; then
      MISSING_ARGS=1
      warn "Missing value for ${REQUIRED_ARG}"
    fi
    readonly "${REQUIRED_ARG}"
  done <<EOF
validate_dependencies() {
  validate_node_pool
  validate_k8s
  validate_expected_control_plane

  if [[ "${MODE}" = "migrate" ]]; then
    validate_istio_version
  elif [[ "${MODE}" = "upgrade" ]]; then
    validate_asm_version
    validate_ca_consistency
  fi
}

Las funciones validate_args y validate_dependencies realizan las siguientes funciones:

  • Verifican que estén instaladas todas las herramientas necesarias.
  • Verifican que el ID del proyecto, el nombre del clúster y la ubicación del clúster que ingresaste como valores de parámetros sean válidos.
  • Garantizan que el clúster cumpla con el tipo de máquina mínimo requerido y la cantidad de nodos.

Configura el proyecto

Si incluiste las marcas --enable_all o --enable_apis, la secuencia de comandos habilita las API requeridas:

required_apis() {
    cat << EOF
container.googleapis.com
compute.googleapis.com
monitoring.googleapis.com
logging.googleapis.com
cloudtrace.googleapis.com
meshtelemetry.googleapis.com
meshconfig.googleapis.com
iamcredentials.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
cloudresourcemanager.googleapis.com
stackdriver.googleapis.com
EOF
  case "${CA}" in
   mesh_ca)
     echo meshca.googleapis.com
     ;;
   gcp_cas)
     echo privateca.googleapis.com
     ;;
    *);;
  esac
}

Si incluiste las marcas --enable_all o --enable_gcp_iam_roles, la secuencia de comandos establece los permisos de IAM requeridos.

Configura el clúster

La secuencia de comandos realiza las siguientes actualizaciones en tu clúster si incluiste la marca --enable_all o una de las marcas de habilitación más detalladas que se enumeran a continuación:

Actualización del clúster Marca
Habilita Workload Identity, que permite que las aplicaciones de GKE accedan de forma segura a los servicios de Google Cloud. --enable_gcp_components
Habilita Cloud Monitoring y Cloud Logging en GKE. --enable_gcp_components
Configura la etiqueta mesh_id en el clúster, que es necesaria para que las métricas se muestren en las páginas de Anthos Service Mesh en la consola de Google Cloud. --enable_cluster_labels
Establece una etiqueta como asmv=asm-186-8 para que puedas saber si la secuencia de comandos modificó el clúster. --enable_cluster_labels
Vincula la cuenta de servicio o el usuario de GCP que ejecuta la secuencia de comandos a la función de administrador del clúster en tu clúster. --enable_cluster_roles

¿Qué sigue?