Referencia de asmcli
Descripción general
asmcli es una herramienta proporcionada por Google que puedes usar para instalar o actualizar Cloud Service Mesh. Si lo permites, asmcli configurará tu proyecto y tu clúster de la siguiente manera:
- Te otorgará los permisos de Identity and Access Management (IAM) necesarios en tu proyecto deGoogle Cloud .
- Habilita las APIs de Google necesarias en tu Google Cloud proyecto.
- Configura una etiqueta en el clúster que identifique la malla.
- Crea una cuenta de servicio que permita que los componentes del plano de datos, como el proxy de sidecar, accedan a los datos y recursos del proyecto de forma segura.
- Registra el clúster en la flota si aún no está registrado.
Solo incluye la marca --enable_all cuando ejecutes asmcli para permitir que configure tu proyecto y clúster. Para obtener más información sobre las opciones y marcas asmcli, consulta la referencia de asmcli.
A continuación, asmcli configura los archivos YAML con la información de tu proyecto y clúster.
Estos archivos de configuración son necesarios para instalar el plano de control de Cloud Service Mesh.
Si eres nuevo en Cloud Service Mesh y Istio, ve a Plataformas compatibles. La siguiente sección está diseñada para ayudar a Cloud Service Mesh existente a actualizar a 1.26.
Transición a asmcli
asmcli reemplaza a istioctl install y install_asm. Aunque aún puedes usar las herramientas heredadas en Cloud Service Mesh 1.11, las daremos de baja y ya no serán compatibles con Cloud Service Mesh 1.12 y versiones posteriores.
Actualiza tus secuencias de comandos y herramientas para usar asmcli.
Todos los clústeres deben estar registrados en una flota. Consulta Requisitos de las flotas para obtener más detalles.
Transición desde install_asm
Si estás familiarizado con install_asm, asmcli es similar, pero con las siguientes diferencias notables:
Usa
asmcli installpara instalaciones y actualizaciones nuevas. No hay una opción--modecomoinstall_asm. Cuando ejecutasasmcli install, comprueba si hay un plano de control existente en el clúster. Si no existe un plano de control existente,asmcliinstala Cloud Service Mesh. Si el clúster tiene un plano de control existente (ya sea un plano de control de Cloud Service Mesh o un plano de control de Istio de código abierto), usa este comando:Si la etiqueta de revisión en el plano de control existente no coincide con la etiqueta de revisión del plano de control nuevo,
asmclirealiza unaactualización canary .Si las etiquetas de revisión del plano de control son las mismas,
asmclirealiza una actualización in situ.
La mayoría de las opciones y marcas de
asmclise comportan de la misma manera que las parainstall_asm.
Transición desde istioctl install
Si estás familiarizado con istioctl install, si normalmente pasas un archivo YAML IstioOperator a través del argumento de línea de comandos -f para configurar el plano de control, puedes pasar el archivo a asmcli mediante la opción --custom_overlay. En la documentación de Cloud Service Mesh, nos referimos a estos archivos como archivos superpuestos.
Plataformas compatibles
Las instalaciones de Cloud Service Mesh en la lista de plataformas compatibles se pueden configurar o actualizar mediante asmcli.
Sin embargo, no todas las funciones están disponibles en las plataformas fuera de Google Cloud. Para obtener más información, consulta Funciones compatibles del plano de control en el clúster.
Referencia de asmcli
En esta sección, se describen los argumentos disponibles para asmcli.
Opciones
Identifica el clúster Tienes las siguientes opciones para identificar el clúster:
Solo GKE.
-p|--project_id CLUSTER_PROJECT_ID- Es 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 los clústeres de zona única) o la región (para los clústeres regionales) en la que se creó el clúster.
Todas las plataformas
--kubeconfig KUBECONFIG_FILE
La ruta completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí.
--ctx|--context KUBE_CONTEXT Es el contexto de kubeconfig que se usará. Si no se especifica, asmcli usa el contexto predeterminado.
-c|--ca {mesh_ca|gcp_cas|citadel}La autoridad certificadora (CA) que se usará para administrar certificados mutuos de TLS. Especifica
mesh_capara usar la autoridad certificadora de Cloud Service Mesh,gcp_caspara usar Certificate Authority Service ocitadelpara usar la AC de Istio. Cloud Service Mesh administrado no es compatible con la AC de Istio. Consulta los siguientes vínculos para obtener más información:--channel CLOUD_SERVICE_MESH_CHANNELUsa
--channelcon un canal de versiones específico de Cloud Service Mesh para aprovisionar la revisión del plano de control asociada con ese canal de versiones. Por ejemplo, usa las etiquetas--channel rapid,--channel regulary--channel stable. Esta marca es obligatoria cuando se configuran ciertas funciones de Cloud Service Mesh en los clústeres de GKE Autopilot.
La opción --channel ya no es compatible con Cloud Service Mesh administrado, como se menciona en las Notas de la versión de CSM.
El canal de versiones se determina en función del canal de versiones de tu clúster de GKE.
Para obtener más información, consulta Canales de lanzamiento de Cloud Service Mesh administrado.
--co|--custom_overlay OVERLAY_FILE- Usa
--custom_overlycon el nombre de un archivo YAML (denominado archivo de superposición) que contenga el recurso personalizadoIstioOperatorpara configurar el plano de control en el clúster. Especificas un archivo de superposición para habilitar una función que no está habilitada de forma predeterminada. Cloud Service Mesh administrado no es compatible con la API deIstioOperator, por lo que no puedes usar--custom_overlaypara configurar el plano de control administrado.asmclidebe poder ubicar el archivo de superposición, por lo que debe estar en el mismo directorio queasmclio puedes especificar una ruta de acceso relativa. Para agregar varios archivos, especifica--co|--custom_overlayy el nombre del archivo, por ejemplo:--co overlay_file1.yaml --co overlay_file2.yaml --co overlay_file3.yaml --hub-registration-extra-flags HUB_REGISTRATION_EXTRA_FLAGS- Si usas clústeres de Amazon EKS adjuntos, usa
--hub-registration-extra-flagspara registrar el clúster en la flota si aún no está registrado. -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.
--network_id NETWORK_ID- Usa
--network_idpara establecer la etiquetatopology.istio.io/networkque se aplica al espacio de nombresistio-system. En GKE,--network_idusa el nombre de red del clúster de forma predeterminada. Para otros entornos, se usarádefault. -o|--option OVERLAY_FILEEl nombre del archivo de superposición (sin la extensión
.yaml) queasmclidescarga del repositorioanthos-service-meshpara habilitar una función opcional. Necesitas conexión a Internet para usar--option. Las opciones--optiony--custom_overlayson similares, pero tienen un comportamiento un poco diferente:Usa
--custom_overlaycuando necesites cambiar la configuración en el archivo de superposición.Usa
--optiona fin de habilitar una función que no requiera cambios en el archivo de superposición, por ejemplo, para configurar políticas de auditoría de tus servicios.
Para agregar varios archivos, especifica
-o|--optiony el nombre del archivo, por ejemplo:-o option_file1 -o option_file2 -o option_file3-D|--output_dir DIR_PATHSi no se especifica,
asmclicrea un directorio temporal en el que descarga archivos y parámetros de configuración necesarios para instalar Cloud Service Mesh. Especifica la marca--output-dirpara especificar una ruta de acceso relativa a un directorio que se usará en su lugar. Una vez completado, el directorio especificado contiene los subdirectoriosasmyistio-1.26.4-asm.7. El directorioasmcontiene la configuración de la instalación. El directorioistio-1.26.4-asm.7tiene el contenido extraído del archivo de instalación, que contieneistioctl, muestras y manifiestos. Si especificas--output-diry el directorio ya contiene los archivos necesarios, laasmcliusará esos archivos en lugar de volver a descargarlos.--platform PLATFORM {gcp|multicloud}La plataforma o el proveedor del clúster de Kubernetes. La configuración predeterminada es
gcp(para clústeres de GKE). Para todas las demás plataformas, usamulticloud.-r|--revision_name REVISION NAMEUna etiqueta de revisión es un par clave-valor que se configura en el plano de control. La clave de la etiqueta de revisión siempre es
istio.io/rev. De forma predeterminada,asmcliestablece el valor de la etiqueta de revisión según la versión de Cloud Service Mesh, por ejemplo:asm-1264-7. Incluye esta opción si deseas anular el valor predeterminado y especificar el tuyo. El argumentoREVISION NAMEdebe ser una etiqueta DNS-1035. Esto significa que el nombre debe cumplir con estos requisitos:- Contener 63 caracteres como máximo.
- Contener solo caracteres alfanuméricos en minúscula o “-”.
- Comenzar con un carácter alfabético
- Terminar con un carácter alfanumérico
La regex que se usa para la validación es: '[a-z]([-a-z0-9]*[a-z0-9])?'
-s|--service_account ACCOUNT- El nombre de una cuenta de servicio que se usa para instalar Cloud Service Mesh. Si no se especifica, se usa la cuenta de usuario activa en la configuración de
gcloudactual. Si necesitas cambiar la cuenta de usuario activa, ejecuta gcloud auth login.
Opciones para el certificado personalizado de la CA de Istio
Si especificaste --ca 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 asmcli 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 asmcli. Todas las marcas de habilitación son incompatibles con asmcli validate. Si especificas una marca de habilitación cuando ejecutas asmcli validate, el comando finaliza con un error.
-e|--enable_all- Permite que
asmclirealice todas las acciones de habilitación individuales que se describen a continuación. --enable_cluster_roles- Permite que
asmcliintente vincular la Google Cloud cuenta de servicio o usuario que ejecutaasmclial rolcluster-adminen tu clúster.asmclidetermina la cuenta de usuario a partir del comandogcloud config get core/account. Si ejecutasasmclide forma local con una cuenta de usuario, asegúrate de llamar al comandogcloud auth loginantes de ejecutarasmcli. Si necesitas cambiar la cuenta de usuario, ejecuta el comandogcloud 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
asmcliestablezca las etiquetas de clúster requeridas. --enable_gcp_componentsPermite que
asmclihabilite los siguientes servicios y componentes administrados Google Cloud obligatorios:Habilita Workload Identity, que permite que las aplicaciones de GKE accedan de forma segura a los servicios de Google Cloud.
Habilita Cloud Monitoring y Cloud Logging en GKE.
--enable_gcp_apisPermite que
asmclihabilite todas las API de Google obligatorias.--enable_gcp_iam_rolesPermite que
asmcliestablezca los permisos de IAM necesarios.--enable_meshconfig_initPermite que la secuencia de comandos inicialice el extremo de meshconfig en tu nombre. Implícito en
--enable_gcp_componentsy--managed.--enable_namespace_creationPermite que
asmclicree el espacio de nombres raízistio-system.--enable_registrationPermite que
asmcliregistre el clúster en el proyecto en el que 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_registrationsolo se incluye en--enable_allcuando especificas una opción (como--option hub-meshca) que requiere el registro de clústeres. De lo contrario, debes especificar esta marca por separado.
Otras marcas
--dry_run- Imprime comandos, pero no los ejecutes.
--fleet_id- Registra un clúster en una flota mediante el ID del proyecto host de la flota. Esta marca es obligatoria para clústeres que no son deGoogle Cloud . Cuando no se proporciona para los clústeres deGoogle Cloud , se establece de forma predeterminada como el ID del proyecto del clúster. Puedes ejecutar
asmcli installjunto con--fleet_idantes de la instalación o como parte de la instalación si pasas las marcas--enable-registrationy--fleet-id. No se puede cambiar esta configuración después de establecerla. --managed- Obsoleta. Aprovisiona un plano de control remoto administrado en lugar de instalar uno en el clúster.
--offline- Realiza una instalación sin conexión con el paquete descargado previamente en el directorio de salida. Si no se especifica el directorio o no contiene los archivos necesarios, la secuencia de comandos se cerrará con error.
--only_enable- Sigue los pasos especificados para configurar el usuario o clúster actual, pero no instale nada.
--only_validate- Ejecuta la validación, pero no actualices el proyecto o el clúster y no instales Cloud Service Mesh. Esta marca no es compatible con las marcas de habilitación.
asmclifinaliza con un error si especificas--only_validatecon cualquier marca de habilitación. --print_config- En lugar de instalar Cloud 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.
asmcliomite todas las validaciones y la configuración cuando especificas esta marca. --disable_canonical_service- Obsoleta. El controlador de servicios canónicos administrado siempre se aprovisiona.
-h|--help- Muestra un mensaje de ayuda que describe las opciones y las marcas, y se cierra.
--use_managed_cni- Usa la CNI administrada. Si no se pasa esta marca,
asmcliaplicará los manifiestos estáticos de la CNI. --use_vpcsc- Si tu organización aplica Controles del servicio de VPC en tu proyecto, debes configurar Cloud Service Mesh administrado con la marca
--use_vpcsc. De lo contrario, la instalación no pasará los controles de seguridad. -v|--verbose- A medida que se ejecuta
asmcli, imprime el comando que se ejecutará a continuación. Con la marca--verbose,asmclitambién imprime el comando después de la ejecución. --version- Imprime la versión de
asmcliy se cierra. Si no tienes la versión más reciente, puedes descargar la versión más reciente deasmcli_1.26.