Instalar Cloud Service Mesh para cargas de trabajo de Kubernetes fuera de Google Cloud
En esta página se explica cómo instalar Cloud Service Mesh en el clúster y sin gestionar para cargas de trabajo de Kubernetes Google Cloud:
- Ejecuta
asmclipara hacer una nueva instalación de Cloud Service Mesh 1.25.5-asm.7. - También puedes desplegar una pasarela de entrada.
- Implementa o vuelve a implementar tus cargas de trabajo para insertar proxies de sidecar.
Si necesitas instalar Cloud Service Mesh en el clúster sin gestionar con un plano de control istiod en GKE, consulta Instalar Cloud Service Mesh en el clúster Google Cloud. Ten en cuenta que, para las cargas de trabajo de Kubernetes enGoogle Cloud, te recomendamos que provisiones un plano de control gestionado.
Para preparar una instalación sin conexión de Cloud Service Mesh, consulta Preparar una instalación sin conexión de Cloud Service Mesh. Deberás especificar las opciones --offline y --output_dir al ejecutar asmcli install.
Limitaciones
Ten en cuenta las siguientes limitaciones:
Para usar Cloud Service Mesh, todos los clústeres de Cloud Service Mesh de una malla deben estar registrados en la misma flota en todo momento. Otros clústeres del proyecto de un clúster de Cloud Service Mesh no deben registrarse en otra flota.
La herramienta
asmclidebe tener acceso al endpoint de Google Kubernetes Engine (GKE). Puedes configurar el acceso a través de un servidor de salto, como una VM de Compute Engine en la nube privada virtual (VPC) que proporcione acceso específico.
Antes de empezar
Antes de empezar, asegúrate de que:
- Consulta los requisitos previos.
- Consulta la información de la sección Planificar la instalación.
- Instala las herramientas necesarias.
- Descargar
asmcli. - Conceder permisos de administrador de clúster.
- Valida el proyecto y el clúster.
Roles necesarios para instalar Cloud Service Mesh en clústeres
En la siguiente tabla se describen los roles necesarios para instalar Cloud Service Mesh en el clúster.
| Nombre del rol | ID de rol | Conceder ubicación | Descripción |
|---|---|---|---|
| Administrador de GKE Hub | roles/gkehub.admin | Proyecto de flota | Acceso completo a GKE Hubs y a los recursos relacionados. |
| Administrador de Kubernetes Engine | roles/container.admin | Proyecto de clúster. Ten en cuenta que este rol se debe conceder tanto en el proyecto de flota como en el de clúster para las vinculaciones entre proyectos. | Proporciona acceso a la gestión total de los clústeres de contenedores y de sus objetos de la API de Kubernetes. |
| Administrador de configuración de la malla | roles/meshconfig.admin | Proyecto de flota y clúster | Proporciona los permisos necesarios para inicializar los componentes gestionados de Cloud Service Mesh, como el plano de control gestionado y el permiso de backend que permite que las cargas de trabajo se comuniquen con Stackdriver sin que cada una de ellas se autorice individualmente (tanto para los planos de control gestionados como para los del clúster). |
| Administrador de gestión de identidades y accesos de proyectos | roles/resourcemanager.projectIamAdmin | Proyecto de clúster | Proporciona permisos para administrar políticas de gestión de identidades y accesos en proyectos. |
| Administrador de cuentas de servicio | roles/iam.serviceAccountAdmin | Proyecto de flota | Autentícate como cuenta de servicio. |
| Administrador de gestión de servicios | roles/servicemanagement.admin | Proyecto de flota | Control absoluto sobre los recursos de Google Service Management. |
| Administrador del uso del servicio | roles/serviceusage.serviceUsageAdmin | Proyecto de flota | Permiso para habilitar, inhabilitar e inspeccionar estados de servicio, además de inspeccionar operaciones y consumir cuotas y facturación en un proyecto de consumidor.(Nota 1) |
| Administrador del Servicio de Autoridades de Certificación beta | roles/privateca.admin | Proyecto de flota | Acceso completo a todos los recursos del Servicio de Autoridades de Certificación. (Nota 2) |
Notas:
- Administrador de Uso de Servicio: este rol es necesario como requisito previo para habilitar la API
mesh.googleapis.comal aprovisionar inicialmente Cloud Service Mesh gestionado. - Administrador del servicio de AC: este rol solo es necesario si vas a integrar el servicio de AC.
Instalar Cloud Service Mesh
A continuación, se explica cómo instalar Cloud Service Mesh:
Ejecuta
asmcli installpara instalar el plano de control en clústeres en un solo clúster. En las siguientes secciones se muestran ejemplos de líneas de comandos. Los ejemplos contienen argumentos obligatorios y opcionales que pueden resultarte útiles. Te recomendamos que siempre especifiques el argumentooutput_dirpara que puedas localizar pasarelas y herramientas de ejemplo, comoistioctl. Consulta la barra de navegación de la derecha para ver una lista de los ejemplos.También puedes instalar una pasarela de entrada. De forma predeterminada,
asmclino instala elistio-ingressgateway. Te recomendamos que despliegues y gestiones el plano de control y las pasarelas por separado. Si necesitas que se instale elistio-ingressgatewaypredeterminado con el plano de control en el clúster, incluye el argumento--option legacy-default-ingressgateway.Para completar la configuración de Cloud Service Mesh, debes habilitar la inyección automática de sidecars y desplegar o volver a desplegar cargas de trabajo.
Si vas a instalar Cloud Service Mesh en más de un clúster, ejecuta
asmcli installen cada uno de ellos. Cuando ejecutesasmcli install, asegúrate de usar el mismoFLEET_PROJECT_IDpara cada clúster. Una vez instalado Cloud Service Mesh, consulta las instrucciones para configurar una malla de varios clústeres Google Cloud.Si tus clústeres están en redes diferentes (como en el modo aislado de la red), debes pasar un nombre de red único a
asmclimediante la marca--network_id.
Instalar las funciones predeterminadas y Mesh CA
En esta sección se muestra cómo ejecutar asmcli para instalar Cloud Service Mesh con las funciones admitidas predeterminadas de tu plataforma y habilitar la autoridad de certificación de Cloud Service Mesh como autoridad de certificación.
On‑premise
Ejecuta los siguientes comandos en Google Distributed Cloud (solo software) para VMware o Google Distributed Cloud (solo software) para bare metal para instalar el plano de control con las funciones predeterminadas y la autoridad de certificación de Cloud Service Mesh. Introduce tus valores en los marcadores de posición proporcionados.
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEEjecuta
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
--ca mesh_caUsa la autoridad de certificación de Cloud Service Mesh como autoridad de certificación.asmcliConfigura la autoridad de certificación de Cloud Service Mesh para que use la identidad de carga de trabajo de la flota.
Para ver los SLOs y las métricas de infraestructura en la interfaz de usuario de Cloud Service Mesh, también debes seguir los tres primeros pasos de Habilitar el registro y la monitorización de aplicaciones. Si el registro y la monitorización no están habilitados y no reciben registros ni métricas personalizados, el panel de control de Cloud Service Mesh no mostrará los SLOs, los registros de errores ni las métricas de CPU y memoria.
AWS
Ejecuta los siguientes comandos en GKE en AWS para instalar el plano de control con las funciones predeterminadas y la autoridad de certificación de Cloud Service Mesh. Introduce tus valores en los marcadores de posición proporcionados.
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEEjecuta
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
--ca mesh_caUsa la autoridad de certificación de Cloud Service Mesh como autoridad de certificación.asmcliconfigura la autoridad de certificación de Cloud Service Mesh para usar Workload Identity de la flota.
Para ver los SLOs y las métricas de infraestructura en la interfaz de usuario de Cloud Service Mesh, también debes seguir los tres primeros pasos de Habilitar el registro y la monitorización de aplicaciones. Si el registro y la monitorización no están habilitados y no reciben registros ni métricas personalizados, el panel de control de Cloud Service Mesh no mostrará los SLOs, los registros de errores ni las métricas de CPU y memoria.
Azure
Ejecuta los siguientes comandos en GKE en Azure para instalar el plano de control con las funciones predeterminadas y la autoridad de certificación de Cloud Service Mesh. Introduce tus valores en los marcadores de posición proporcionados.
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEEjecuta
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
--ca mesh_caUsa la autoridad de certificación de Cloud Service Mesh como autoridad de certificación.asmcliconfigura la autoridad de certificación de Cloud Service Mesh para usar Workload Identity de la flota.
Para ver los SLOs y las métricas de infraestructura en la interfaz de usuario de Cloud Service Mesh, también debes seguir los tres primeros pasos de Habilitar el registro y la monitorización de aplicaciones. Si el registro y la monitorización no están habilitados y no reciben registros ni métricas personalizados, el panel de control de Cloud Service Mesh no mostrará los SLOs, los registros de errores ni las métricas de CPU y memoria.
Amazon EKS
Ejecuta los siguientes comandos en Amazon EKS para instalar el plano de control con las funciones predeterminadas y la autoridad de certificación de Cloud Service Mesh. Introduce tus valores en los marcadores de posición proporcionados.
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEEjecuta
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --network_id default \ --ca mesh_ca--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
--option attached-clusterCambia la utilidad de firma predeterminada a istiod.--network_idSi vas a configurar una malla de varias redes, asigna un valor único a--network_idpara cada clúster de la malla.--ca mesh_caUsa la autoridad de certificación de Cloud Service Mesh como autoridad de certificación.asmcliconfigura la autoridad de certificación de Cloud Service Mesh para usar Workload Identity de la flota.
Para ver los SLOs y las métricas de infraestructura en la interfaz de usuario de Cloud Service Mesh, también debes seguir los tres primeros pasos de Habilitar el registro y la monitorización de aplicaciones. Si el registro y la monitorización no están habilitados y no reciben registros ni métricas personalizados, el panel de control de Cloud Service Mesh no mostrará los SLOs, los registros de errores ni las métricas de CPU y memoria.
Microsoft AKS
Ejecuta los siguientes comandos en Microsoft AKS para instalar el plano de control con las funciones predeterminadas y la autoridad de certificación de Cloud Service Mesh. Introduce tus valores en los marcadores de posición proporcionados.
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEEjecuta
asmcli install:HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --network_id default \ --ca mesh_caHUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuerPermite registrarse en GKE Hub.--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
--option attached-clusterCambia la utilidad de firma predeterminada a istiod.--network_idSi vas a configurar una malla de varias redes, asigna un valor único a--network_idpara cada clúster de la malla.--ca mesh_caUsa la autoridad de certificación de Cloud Service Mesh como autoridad de certificación.asmcliconfigura la autoridad de certificación de Cloud Service Mesh para usar Workload Identity de la flota.
Para ver los SLOs y las métricas de infraestructura en la interfaz de usuario de Cloud Service Mesh, también debes seguir los tres primeros pasos de Habilitar el registro y la monitorización de aplicaciones. Si el registro y la monitorización no están habilitados y no reciben registros ni métricas personalizados, el panel de control de Cloud Service Mesh no mostrará los SLOs, los registros de errores ni las métricas de CPU y memoria.
Instalar las funciones predeterminadas y el servicio de autoridad de certificación (CA)
En esta sección se muestra cómo ejecutar asmcli para instalar Cloud Service Mesh con las funciones compatibles predeterminadas de tu plataforma y habilitar el servicio de CA como autoridad de certificación.
Además de la autoridad de certificación de Cloud Service Mesh, puedes configurar Cloud Service Mesh para que use el Servicio de Autoridades de Certificación. En esta guía se explica cómo integrar el Servicio de Autoridades de Certificación, lo que se recomienda en los siguientes casos prácticos:
- Si necesitas que diferentes autoridades de certificación firmen certificados de carga de trabajo en diferentes clústeres.
- Si necesitas crear una copia de seguridad de tus claves de firma en un Cloud HSM.
- Si trabajas en un sector muy regulado y debes cumplir ciertas normativas.
- Si quieres encadenar tu AC de Cloud Service Mesh a un certificado raíz de empresa personalizado para firmar certificados de carga de trabajo.
El coste de la autoridad de certificación de Cloud Service Mesh está incluido en los precios de Cloud Service Mesh. El servicio de CA no está incluido en el precio base de Cloud Service Mesh y se cobra por separado. Además, el Servicio de Autoridades de Certificación incluye un acuerdo de nivel de servicio explícito, pero la autoridad de certificación de Cloud Service Mesh no.
Configurar el servicio de AC
- Crea el grupo de CAs
en el nivel
DevOpsy en la misma región que el clúster al que sirve para evitar problemas de latencia excesiva o posibles interrupciones entre regiones. Para obtener más información, consulta Niveles de carga de trabajo optimizada. - Crea la AC para tener al menos una autoridad de certificación activa en el grupo de ACs del mismo proyecto que el clúster de GKE. Usa ACs subordinadas para firmar certificados de carga de trabajo de Cloud Service Mesh. Anota el grupo de ACs correspondiente a la AC subordinada.
Si solo se va a usar para emitir certificados para cargas de trabajo de Cloud Service Mesh, configura la siguiente política de emisión para el grupo de CAs:
policy.yaml
baselineValues: keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: serverAuth: true clientAuth: true caOptions: isCa: false identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: subject_alt_names.all(san, san.type == URI && san.value.startsWith("spiffe://PROJECT_ID.svc.id.goog/ns/") )Para actualizar la política de emisión del grupo de CAs, usa el siguiente comando:
gcloud privateca pools update CA_POOL --location ca_region --issuance-policy policy.yaml
Para obtener información sobre cómo definir una política en un pool, consulta Usar una política de emisión de certificados.
Si vas a usar una plantilla de certificado, configúrala ahora. Para obtener más información, consulta la guía del servicio de CA para certificados de identidad de carga de trabajo. Asegúrate de que la plantilla de certificado se cree en la misma región que el grupo de ACs. Si hay varias regiones para los grupos de ACs, crea una plantilla de certificado por región.
Configurar Cloud Service Mesh para usar el Servicio de Autoridades de Certificación
Ejecuta los siguientes comandos en Google Distributed Cloud (solo software) para VMware o Google Distributed Cloud (solo software) para bare metal para instalar el plano de control con las funciones predeterminadas y el servicio de autoridad de certificación. Introduce tus valores en los marcadores de posición proporcionados.
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEEjecuta
asmcli install:./asmcli install \ --kubeconfig KUBECONFIG_FILE \ --fleet_id FLEET_PROJECT_ID \ --output_dir DIR_PATH \ --enable_all \ --ca gcp_cas \ --platform multicloud \ --ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL
--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
--ca gcp_casUsa el Servicio de Autoridades de Certificación como autoridad de certificación. Si cambias las autoridades de certificación durante una actualización, se producirá un tiempo de inactividad.asmcliconfigura el Servicio de Autoridades de Certificación para usar Workload Identity de la flota.--ca_poolEl identificador completo del servicio de autoridad de certificación CA Pool. Si utilizas una plantilla de certificado, añade el ID de la plantilla separado por:. Por ejemplo:--ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL:projects/CA_POOL_PROJECT_ID/locations/ca_region/certificateTemplates/CERT_TEMPLATE_ID
Para ver los SLOs y las métricas de infraestructura en la interfaz de usuario de Cloud Service Mesh, también debes seguir los tres primeros pasos de Habilitar el registro y la monitorización de aplicaciones. Si el registro y la monitorización no están habilitados y no reciben registros ni métricas personalizados, el panel de control de Cloud Service Mesh no mostrará los SLOs, los registros de errores ni las métricas de CPU y memoria.
Instalar funciones predeterminadas con la AC de Istio
En esta sección se explica cómo:
- Genera certificados y claves para la AC de Istio que usa Cloud Service Mesh para firmar tus cargas de trabajo.
- Ejecuta
asmclipara instalar Cloud Service Mesh con las funciones predeterminadas y habilitar Istio CA.
De forma predeterminada, los entornos que instalan Cloud Service Mesh con Istio CA envían métricas a Prometheus. Si quieres usar los paneles de Cloud Service Mesh, debes habilitar Stackdriver. Para obtener más información, consulta Instalar con funciones opcionales.
Para disfrutar de la máxima seguridad, te recomendamos que mantengas una CA raíz offline y que uses las CAs subordinadas para emitir certificados para cada clúster. Para obtener más información, consulta Plug in CA Certificates (Conectar certificados de CA). En esta configuración, todas las cargas de trabajo de la malla de servicios usan la misma autoridad de certificación (CA) raíz. Cada AC de Cloud Service Mesh usa una clave de firma y un certificado de AC intermedio, firmados por la AC raíz. Cuando hay varias CAs en una malla, se establece una jerarquía de confianza entre ellas. Puedes repetir estos pasos para aprovisionar certificados y claves para cualquier número de autoridades de certificación.
El archivo Makefile para generar los certificados se encuentra en el subdirectorio istio-1.25.5-asm.7 del directorio --output_dir que especificaste en el comando asmcli validate. Si no has ejecutado asmcli validate o no tienes el directorio descargado de forma local, puedes obtener el archivo Makefile descargando el archivo de instalación de Cloud Service Mesh y extrayendo el contenido.
Cambia al directorio
istio-1.25.5-asm.7.Crea un directorio para los certificados y las claves:
mkdir -p certs && \ pushd certs
Genera un certificado raíz y una clave:
make -f ../tools/certs/Makefile.selfsigned.mk root-ca
Se generan los siguientes archivos:
- root-cert.pem: el certificado raíz
- root-key.pem: la clave raíz
- root-ca.conf: la configuración de openssl para generar el certificado raíz
- root-cert.csr: la CSR del certificado raíz
Genera un certificado y una clave intermedios:
make -f ../tools/certs/Makefile.selfsigned.mk cluster1-cacerts
Se generarán estos archivos en un directorio llamado
cluster1:- ca-cert.pem: los certificados intermedios
- ca-key.pem: la clave intermedia
- cert-chain.pem: la cadena de certificados que usa
istiod - root-cert.pem: el certificado raíz
Si sigues estos pasos en un ordenador sin conexión, copia el directorio generado en un ordenador que tenga acceso a los clústeres.
Volver al directorio anterior:
popd
Ejecuta
asmclipara instalar una malla con Istio CA:On‑premise
Ejecuta los siguientes comandos en Google Distributed Cloud (solo software) para VMware o Google Distributed Cloud (solo software) para bare metal para instalar el plano de control con las funciones predeterminadas y la CA de Istio. Introduce tus valores en los marcadores de posición proporcionados.
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEEjecuta
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
-ca citadelUsa Istio CA como autoridad de certificación.--ca_certEl certificado intermedio--ca_keyLa clave del certificado intermedio--root_certEl certificado raíz--cert_chainLa cadena de certificados
AWS
Ejecuta los siguientes comandos en GKE en AWS para instalar el plano de control con las funciones predeterminadas y la CA de Istio. Introduce tus valores en los marcadores de posición proporcionados. Puedes habilitar Ingress para la subred pública o la privada.
Público
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEEjecuta
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
-ca citadelUsa Istio CA como autoridad de certificación.--ca_certEl certificado intermedio.--ca_keyLa clave del certificado intermedio.--root_certEl certificado raíz.--cert_chainLa cadena de certificados.
Privado
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEGuarda el siguiente archivo YAML con el nombre
istio-operator-internal-lb.yaml:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgatewayEjecuta
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH \ --custom_overlay istio-operator-internal-lb.yaml--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
-ca citadelUsa Istio CA como autoridad de certificación.--ca_certEl certificado intermedio.--ca_keyLa clave del certificado intermedio.--root_certEl certificado raíz.--cert_chainLa cadena de certificados.--custom_overlayEl nombre del archivo de superposición creado. Para obtener más información sobre los archivos de superposición, consulta Habilitar funciones opcionales en el plano de control en clústeres.
Azure
Ejecuta los siguientes comandos en GKE en Azure para instalar el plano de control con las funciones predeterminadas y la CA de Istio. Introduce tus valores en los marcadores de posición proporcionados. Puedes habilitar Ingress para la subred pública o la privada.
Público
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEEjecuta
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
-ca citadelUsa Istio CA como autoridad de certificación.--ca_certEl certificado intermedio.--ca_keyLa clave del certificado intermedio.--root_certEl certificado raíz.--cert_chainLa cadena de certificados.
Privado
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEGuarda el siguiente archivo YAML con el nombre
istio-operator-internal-lb.yaml:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgatewayEjecuta
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH \ --custom_overlay istio-operator-internal-lb.yaml--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
-ca citadelUsa Istio CA como autoridad de certificación.--ca_certEl certificado intermedio.--ca_keyLa clave del certificado intermedio.--root_certEl certificado raíz.--cert_chainLa cadena de certificados.--custom_overlayEl nombre del archivo de superposición creado. Para obtener más información sobre los archivos de superposición, consulta Habilitar funciones opcionales en el plano de control en clústeres.
Amazon EKS
Ejecuta los siguientes comandos en Amazon EKS para instalar el plano de control con las funciones predeterminadas y la CA de Istio. Introduce tus valores en los marcadores de posición proporcionados.
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEEjecuta
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --network_id default--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
--option attached-clusterCambia la utilidad de firma predeterminada a istiod.-ca citadelUsa Istio CA como autoridad de certificación.--ca_certEl certificado intermedio--ca_keyLa clave del certificado intermedio--root_certEl certificado raíz--cert_chainLa cadena de certificados--network_idSi vas a configurar una malla de varias redes, asigna un valor único a--network_idpara cada clúster de la malla.
Microsoft AKS
Ejecuta los siguientes comandos en Microsoft AKS para instalar el plano de control con las funciones predeterminadas y la CA de Istio. Introduce tus valores en los marcadores de posición proporcionados.
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEEjecuta
asmcli install:HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --network_id defaultHUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuerPermite registrarse en GKE Hub.--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
--option attached-clusterCambia la utilidad de firma predeterminada a istiod.-ca citadelUsa Istio CA como autoridad de certificación.--ca_certEl certificado intermedio--ca_keyLa clave del certificado intermedio--root_certEl certificado raíz--cert_chainLa cadena de certificados--network_idSi vas a configurar una malla de varias redes, asigna un valor único a--network_idpara cada clúster de la malla.
Instalar con la CA de Istio con Google Cloud Observability habilitado
Si quieres usar los paneles de Cloud Service Mesh, debes habilitar Stackdriver.
On‑premise
Ejecuta los siguientes comandos en Google Distributed Cloud (solo software) para VMware o Google Distributed Cloud (solo software) para bare metal para instalar el plano de control con Stackdriver y otras funciones opcionales, así como la CA de Istio. Introduce tus valores en los marcadores de posición proporcionados.
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEEjecuta
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
-ca citadelUsa Istio CA como autoridad de certificación.--ca_certEl certificado intermedio--ca_keyLa clave del certificado intermedio--root_certEl certificado raíz--cert_chainLa cadena de certificados--option stackdriverHabilita la opción Stackdriver. Ten en cuenta que también puedes habilitar Stackdriver y Prometheus con--option prometheus-and-stackdriver.
Para ver los SLOs y las métricas de infraestructura en la interfaz de usuario de Cloud Service Mesh, también debes seguir los tres primeros pasos de Habilitar el registro y la monitorización de aplicaciones. Si el registro y la monitorización no están habilitados y no reciben registros ni métricas personalizados, el panel de control de Cloud Service Mesh no mostrará los SLOs, los registros de errores ni las métricas de CPU y memoria.
AWS
Ejecuta los siguientes comandos en GKE en AWS para instalar el plano de control con Stackdriver y otras funciones opcionales, así como la CA de Istio. Introduce tus valores en los marcadores de posición proporcionados. Puedes habilitar Ingress para la subred pública o la privada.
Público
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEEjecuta
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --option stackdriver--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
-ca citadelUsa Istio CA como autoridad de certificación.--ca_certEl certificado intermedio.--ca_keyLa clave del certificado intermedio.--root_certEl certificado raíz.--cert_chainLa cadena de certificados.--option stackdriverHabilita la opción Stackdriver. Ten en cuenta que también puedes habilitar Stackdriver y Prometheus con--option prometheus-and-stackdriver.
Privado
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEGuarda el siguiente archivo YAML con el nombre
istio-operator-internal-lb.yaml:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgatewayEjecuta
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH --custom_overlay istio-operator-internal-lb.yaml \ --option stackdriver--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
-ca citadelUsa Istio CA como autoridad de certificación.--ca_certEl certificado intermedio.--ca_keyLa clave del certificado intermedio.--root_certEl certificado raíz.--cert_chainLa cadena de certificados.--custom_overlayEl nombre del archivo de superposición creado. Para obtener más información sobre los archivos de superposición, consulta el artículo Habilitar funciones opcionales en el plano de control en clústeres.--option stackdriverHabilita la opción Stackdriver. Ten en cuenta que también puedes habilitar Stackdriver y Prometheus con--option prometheus-and-stackdriver. También puedes habilitar Stackdriver con--custom_overlay stackdriver.yaml. Debes descargar el paquete anthos-service-mesh-package o crearstackdriver.yamla partir del manifiesto proporcionado.
Azure
Ejecuta los siguientes comandos en GKE en Azure para instalar el plano de control con Stackdriver y otras funciones opcionales, así como la CA de Istio. Introduce tus valores en los marcadores de posición proporcionados. Puedes habilitar Ingress para la subred pública o la privada.
Público
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEEjecuta
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --option stackdriver--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
-ca citadelUsa Istio CA como autoridad de certificación.--ca_certEl certificado intermedio.--ca_keyLa clave del certificado intermedio.--root_certEl certificado raíz.--cert_chainLa cadena de certificados.--option stackdriverHabilita la opción Stackdriver. Ten en cuenta que también puedes habilitar Stackdriver y Prometheus con--option prometheus-and-stackdriver.
Privado
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEGuarda el siguiente archivo YAML con el nombre
istio-operator-internal-lb.yaml:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgatewayEjecuta
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH --custom_overlay istio-operator-internal-lb.yaml \ --option stackdriver--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
-ca citadelUsa Istio CA como autoridad de certificación.--ca_certEl certificado intermedio.--ca_keyLa clave del certificado intermedio.--root_certEl certificado raíz.--cert_chainLa cadena de certificados.--custom_overlayEl nombre del archivo de superposición creado. Para obtener más información sobre los archivos de superposición, consulta el artículo Habilitar funciones opcionales en el plano de control en clústeres.--option stackdriverHabilita la opción Stackdriver. Ten en cuenta que también puedes habilitar Stackdriver y Prometheus con--option prometheus-and-stackdriver. También puedes habilitar Stackdriver con--custom_overlay stackdriver.yaml. Debes descargar el paquete anthos-service-mesh-package o crearstackdriver.yamla partir del manifiesto proporcionado.
Amazon EKS
Ejecuta los siguientes comandos en Amazon EKS para instalar el plano de control con Stackdriver y otras funciones opcionales, así como la CA de Istio. Introduce tus valores en los marcadores de posición proporcionados.
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEEjecuta
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --option stackdriver \ --option attached-cluster--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
-ca citadelUsa Istio CA como autoridad de certificación.--ca_certEl certificado intermedio--ca_keyLa clave del certificado intermedio--root_certEl certificado raíz--cert_chainLa cadena de certificados--option stackdriverHabilita la opción Stackdriver. Ten en cuenta que también puedes habilitar Stackdriver y Prometheus con--option prometheus-and-stackdriver.--option stackdriverCambia la utilidad de firma predeterminada aistiod.
Microsoft AKS
Ejecuta los siguientes comandos en Microsoft AKS para instalar el plano de control con las funciones predeterminadas y la CA de Istio. Introduce tus valores en los marcadores de posición proporcionados.
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEEjecuta
asmcli install:HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --option stackdriver \ --option attached-clusterHUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuerPermite registrarse en GKE Hub.--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
-ca citadelUsa Istio CA como autoridad de certificación.--ca_certEl certificado intermedio--ca_keyLa clave del certificado intermedio--root_certEl certificado raíz--cert_chainLa cadena de certificados--option stackdriverHabilita la opción Stackdriver. Ten en cuenta que también puedes habilitar Stackdriver y Prometheus con--option prometheus-and-stackdriver.--option stackdriverCambia la utilidad de firma predeterminada aistiod.
Instalar con funciones opcionales
Un archivo de superposición es un archivo YAML que contiene un IstioOperator recurso personalizado
(CR) que se pasa a asmcli para configurar el plano de control. Puedes anular la configuración predeterminada del plano de control y habilitar una función opcional pasando el archivo YAML a asmcli. Puedes añadir más superposiciones, y cada archivo de superposición anula la configuración de las capas anteriores. Te recomendamos que guardes los archivos de superposición en tu sistema de control de versiones.
Hay dos opciones para habilitar las funciones opcionales:
--option y
--custom_overlay.
Usa --option si no necesitas cambiar el archivo de superposición. Con este método, asmcli obtiene el archivo del repositorio de GitHub por ti.
Usa --custom_overlay cuando necesites personalizar el archivo de superposición.
Para obtener más información, consulta Habilitar funciones opcionales en el plano de control en clústeres.
Ejecuta los siguientes comandos en Google Distributed Cloud (solo software) para VMware, Google Distributed Cloud (solo software) para bare metal, GKE en AWS, GKE en Azure, Amazon EKS o Microsoft AKS. Introduce tus valores en los marcadores de posición proporcionados.
Define el contexto actual en tu clúster de usuario:
kubectl config use-context CLUSTER_NAMEEjecuta
asmcli installpara instalar el plano de control con una función opcional. Para añadir varios archivos, especifica--custom_overlayy el nombre de archivo. Por ejemplo:--custom_overlayoverlay_file1.yaml --custom_overlay overlay_file2.yaml --custom_overlay overlay_file3.yaml./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca \ --custom_overlay OVERLAY_FILE--fleet_idEl ID del proyecto del proyecto host de la flota.--kubeconfigLa ruta completa al archivokubeconfig. La variable de entorno$PWDno funciona aquí. Además, no funcionarán las ubicaciones de archivoskubeconfigrelativas que usen `~`.--output_dirIncluye esta opción para especificar un directorio dondeasmclidescargue el paqueteanthos-service-meshy extraiga el archivo de instalación, que contieneistioctl, muestras y manifiestos. De lo contrario,asmclidescarga los archivos en un directoriotmp. Puede especificar una ruta relativa o una ruta completa. La variable de entorno$PWDno funciona aquí.--platform multicloudEspecifica que la plataforma es algo distinto Google Cloud, como una plataforma local o multicloud.-
--enable_allPermite que la secuencia de comandos haga lo siguiente:- Concede los permisos de gestión de identidades y accesos necesarios.
- Habilita las APIs de Google necesarias.
- Define una etiqueta en el clúster que identifique la malla.
- Registra el clúster en la flota si aún no lo has hecho.
--ca mesh_caUsa la autoridad de certificación de Cloud Service Mesh como autoridad de certificación. Ten en cuenta queasmcliconfigura la autoridad de certificación de Cloud Service Mesh para usar Workload Identity de la flota.--custom_overlayEspecifica el nombre del archivo de superposición.
Instalar pasarelas
Cloud Service Mesh te ofrece la opción de desplegar y gestionar gateways como parte de tu malla de servicios. Una pasarela describe un balanceador de carga que opera en el perímetro de la malla y recibe conexiones HTTP o TCP entrantes o salientes. Las pasarelas son proxies de Envoy que te ofrecen un control pormenorizado del tráfico que entra y sale de la malla.
Crea un espacio de nombres para la pasarela de entrada si aún no tienes uno. Las pasarelas son cargas de trabajo de usuario y, como práctica recomendada, no deben desplegarse en el espacio de nombres del plano de control. Sustituye
GATEWAY_NAMESPACEpor el nombre de tu espacio de nombres.kubectl create namespace GATEWAY_NAMESPACEResultado esperado:
namespace/GATEWAY_NAMESPACE createdHabilita la inyección automática en la pasarela. Los pasos que debe seguir dependen de si quiere usar etiquetas de inyección predeterminadas (por ejemplo,
istio-injection=enabled) o la etiqueta de revisión en el espacio de nombres de la pasarela. El webhook del inyector de sidecar usa la etiqueta de revisión y la etiqueta de revisión predeterminadas para asociar los proxies insertados con una revisión del plano de control concreta.Predeterminada (recomendado)
Si ha usado una revisión de etiqueta predeterminada para habilitar la inyección automática en la pasarela, compruebe que la etiqueta predeterminada se encuentra en el directorio que ha especificado en
--output_diry que apunta a la revisión recién instalada.DIR_PATH/istioctl tag listAplica las etiquetas de inyección predeterminadas al espacio de nombres.
kubectl label namespace GATEWAY_NAMESPACE istio-injection=enabled istio.io/rev-
Etiqueta de revisión
Usa el siguiente comando para localizar la etiqueta de revisión en
istiod:kubectl get deploy -n istio-system -l app=istiod -o \ "jsonpath={.items[*].metadata.labels['istio\.io/rev']}{'\n'}"El comando muestra la etiqueta de revisión que corresponde a la versión de Cloud Service Mesh. Por ejemplo:
asm-1255-7Aplica la etiqueta de revisión al espacio de nombres. En el siguiente comando,
REVISIONes el valor de la etiqueta de revisiónistiodque has anotado en el paso anterior.kubectl label namespace GATEWAY_NAMESPACE \ istio.io/rev=REVISION --overwriteResultado esperado:
namespace/GATEWAY_NAMESPACE labeled
Puedes ignorar el mensaje
"istio.io/rev" not founden la salida. Esto significa que el espacio de nombres no tenía la etiquetaistio.io/rev, que debería aparecer en las nuevas instalaciones de Cloud Service Mesh o en las nuevas implementaciones. Como la inyección automática falla si un espacio de nombres tiene las etiquetasistio.io/revyistio-injection, todos los comandoskubectl labelde la documentación de Cloud Service Mesh especifican explícitamente ambas etiquetas.Si el espacio de nombres de la pasarela no está etiquetado, los pods
istio-ingressgatewayfallarán con un errorImagePullBackOffcuando la pasarela intente extraer la imagenauto. Esta imagen debe sustituirse por el webhook.Descarga el archivo de configuración .yaml de la pasarela de entrada de ejemplo del repositorio
anthos-service-mesh-packages.Aplica la configuración .yaml de la pasarela de entrada de ejemplo tal cual o modifícala según sea necesario.
kubectl apply -n GATEWAY_NAMESPACE \ -f CONFIG_PATH/istio-ingressgatewayResultado esperado:
deployment.apps/istio-ingressgateway created poddisruptionbudget.policy/istio-ingressgateway created horizontalpodautoscaler.autoscaling/istio-ingressgateway created role.rbac.authorization.k8s.io/istio-ingressgateway created rolebinding.rbac.authorization.k8s.io/istio-ingressgateway created service/istio-ingressgateway created serviceaccount/istio-ingressgateway created
Más información sobre las prácticas recomendadas para las pasarelas
Desplegar y volver a desplegar cargas de trabajo
Cloud Service Mesh usa proxies sidecar para mejorar la seguridad, la fiabilidad y la observabilidad de la red. Con Cloud Service Mesh, estas funciones se abstraen del contenedor principal de la aplicación y se implementan en un proxy común fuera del proceso que se proporciona como un contenedor independiente en el mismo pod.
La instalación no se completará hasta que habilites la inyección automática del proxy sidecar y reinicies los pods de las cargas de trabajo que se estaban ejecutando en tu clúster antes de instalar Cloud Service Mesh.
Para habilitar la inyección automática, etiqueta tus espacios de nombres con las etiquetas de inyección predeterminadas
si la etiqueta predeterminada está configurada o con una etiqueta de revisión
que se haya definido en istiod al instalar Cloud Service Mesh. El webhook del inyector de sidecar usa la etiqueta de revisión y la etiqueta de revisión predeterminadas para asociar los sidecars inyectados con una revisión de istiod. Después de añadir la etiqueta, se deben reiniciar todos los pods que haya en el espacio de nombres para que se inserten los sidecars.
Antes de implementar nuevas cargas de trabajo en un nuevo espacio de nombres, configura la inyección automática para que Cloud Service Mesh pueda monitorizar y proteger el tráfico.
Los pasos necesarios para habilitar la inyección automática dependen de si quieres usar etiquetas de inyección predeterminadas o la etiqueta de revisión:
Predeterminada (recomendado)
Si ha usado una revisión de etiqueta predeterminada para habilitar la inyección automática en la pasarela, compruebe que la etiqueta predeterminada se encuentra en el directorio que ha especificado en
--output_diry que apunta a la revisión recién instalada.DIR_PATH/istioctl tag listEjecuta el siguiente comando:
NAMESPACEes el nombre del espacio de nombres en el que quieres habilitar la inyección automática.kubectl label namespace NAMESPACE istio-injection=enabled istio.io/rev-
Las etiquetas de inyección predeterminadas inyectan la revisión a la que apunta la etiqueta predeterminada.
Etiqueta de revisión
Usa el siguiente comando para localizar la etiqueta de revisión en
istiod:kubectl -n istio-system get pods -l app=istiod --show-labelsEl resultado es similar al siguiente:
NAME READY STATUS RESTARTS AGE LABELS istiod-asm-1255-7-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-1255-7,istio=istiod,pod-template-hash=5788d57586 istiod-asm-1255-7-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-1255-7,istio=istiod,pod-template-hash=5788d57586
En el resultado, en la columna
LABELS, anote el valor de la etiqueta de revisiónistiodque sigue al prefijoistio.io/rev=. En este ejemplo, el valor esasm-1255-7.Aplica la etiqueta de revisión y quita la etiqueta
istio-injectionsi existe. En el siguiente comando,NAMESPACEes el nombre del espacio de nombres en el que quieres habilitar la inyección automática yREVISIONes la etiqueta de revisión que has anotado en el paso anterior.kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION --overwritePuedes ignorar el mensaje
"istio-injection not found"en la salida. Esto significa que el espacio de nombres no tenía la etiquetaistio-injection, que debería aparecer en las nuevas instalaciones o implementaciones de Cloud Service Mesh. Como el comportamiento de la inyección automática no está definido cuando un espacio de nombres tiene tanto la etiquetaistio-injectioncomo la de revisión, todos los comandoskubectl labelde la documentación de Cloud Service Mesh se aseguran explícitamente de que solo se defina una.
Si las cargas de trabajo se estaban ejecutando en tu clúster antes de instalar Cloud Service Mesh, reinicia los pods para activar la reinyección.
La forma de reiniciar los pods depende de tu aplicación y del entorno en el que se encuentre el clúster. Por ejemplo, en tu entorno de staging, puedes eliminar todos los pods, lo que provocará que se reinicien. Sin embargo, en tu entorno de producción, puede que tengas un proceso que implemente una implementación azul-verde para poder reiniciar los pods de forma segura y evitar interrupciones del tráfico.
Puedes usar
kubectlpara realizar un reinicio gradual:kubectl rollout restart deployment -n NAMESPACE
Siguientes pasos
Si tu malla está formada por clústeres que no están en Google Cloud, consulta Configurar una malla de varios clústeres fuera de Google Cloud.