Desinstala Cloud Service Mesh en el clúster
En esta página, se explica cómo desinstalar Cloud Service Mesh en el clúster si usas las APIs de Istio. Si usas las APIs de Compute Engine, no es necesario que realices ningún paso. Consulta la descripción general de Cloud Service Mesh para comprender las diferencias.
Si sigues estas instrucciones para desinstalar Cloud Service Mesh en el clúster, se quitarán todas las configuraciones.
Si desinstalas Cloud Service Mesh administrado, sigue la guía de desinstalación administrada.
Si migras de un controlador dentro del clúster a uno administrado, sigue la guía de migración.
Impacto de la eliminación de Cloud Service Mesh
Antes de desinstalar Cloud Service Mesh, ten en cuenta las capacidades que se quitarán de tu clúster y tus cargas de trabajo. Cuando quitas los proxies de Cloud Service Mesh de tus cargas de trabajo y las reinicias, tus aplicaciones vuelven al comportamiento de redes estándar de Kubernetes.
Seguridad
Cuando quitas Cloud Service Mesh, pierdes las siguientes funciones de seguridad:
- Encriptación con TLS mutua (mTLS): El tráfico entre los servicios ya no se encripta en tránsito con certificados mTLS administrados por la malla.
- Políticas de autorización: Ya no se aplican los recursos personalizados
AuthorizationPolicyde la malla. Debes configurar recursosNetworkPolicyde Kubernetes o autenticación y autorización a nivel de la aplicación para restringir el tráfico.
Observabilidad
Cuando quitas Cloud Service Mesh, pierdes las siguientes funciones de observabilidad:
- Telemetría y métricas: Se detiene la recopilación automática de métricas de capa 7 (como tasas de solicitudes, tasas de errores y latencia). La telemetría de la malla ya no se transfiere automáticamente a Cloud Monitoring. Las métricas de GKE Standard no se ven afectadas.
- Paneles y SLOs: Ya no se completan los paneles preconfigurados de Cloud Service Mesh ni la supervisión de los objetivos de nivel de servicio (SLO) en la consola deGoogle Cloud .
- Registro y seguimiento de acceso: Ya no se generan registros de acceso del proxy sidecar con identidades de mTLS del cliente ni seguimientos distribuidos automatizados.
Descubrimiento de servicios y resiliencia de redes
Cuando quitas Cloud Service Mesh, pierdes las siguientes funciones de redes y resiliencia:
- Resistencia de la red: Las cargas de trabajo pierden las funciones de resistencia a nivel de sidecar, como los reintentos automáticos, los tiempos de espera de solicitudes configurables, los disyuntores, la detección de valores atípicos y la administración de grupos de conexiones. Las aplicaciones deben administrar las fallas de conexión y los reintentos directamente.
- Descubrimiento de servicios de varios clústeres: El descubrimiento de extremos entre clústeres y el enrutamiento en varios clústeres de una flota ya no funcionan a través de la malla. Los servicios solo pueden descubrir extremos dentro de su clúster local con el DNS estándar.
Desinstala Cloud Service Mesh
Usa los siguientes comandos para desinstalar todos los componentes de Cloud Service Mesh.
Para evitar la interrupción del tráfico de la aplicación, haz lo siguiente:
- Cambia las políticas STRICT de mTLS a PERMISSIVE.
- Quita cualquier AuthorizationPolicy que pueda bloquear el tráfico.
Inhabilita la inserción automática de sidecar en tus espacios de nombres, si está habilitada. Ejecuta el siguiente comando para mostrar las etiquetas del espacio de nombres:
kubectl get namespace YOUR_NAMESPACE --show-labelsEl resultado es similar a lo siguiente:
NAME STATUS AGE LABELS demo Active 4d17h istio.io/rev=asm-181-5
Si ves
istio.io/rev=en el resultado en la columnaLABELS, quítalo:kubectl label namespace YOUR_NAMESPACE istio.io/rev-Si ves
istio-injectionen el resultado en la columnaLABELS, quítalo:kubectl label namespace YOUR_NAMESPACE istio-injection-Si no ves las etiquetas
istio.io/revoistio-injection, la inyección automática no se habilitó en el espacio de nombres.Reinicia tus cargas de trabajo que tienen incorporados sidecars para quitar los proxies.
Borra
validatingwebhooksconfigurationymutatingwebhookconfigurationde tu clúster, si existen:kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot,istio.io/owned-by!=mesh.googleapis.comUna vez que aparezcan todas las cargas de trabajo y no se vean proxies, puedes borrar de forma segura el plano de control en el clúster para detener la facturación.
Para quitar el plano de control en el clúster, ejecuta el siguiente comando:
istioctl uninstall --purgeSi no hay otros planos de control, puedes borrar el espacio de nombres
istio-systempara deshacerte de todos los recursos de Cloud Service Mesh. De lo contrario, borra los servicios correspondientes a las revisiones de Cloud Service Mesh. Esto evita borrar recursos compartidos, como CRD.De manera opcional, quita los CR de Istio, los CRD de Istio, el mapa de configuración istio-(revisión), el mapa de configuración asm-options, los espacios de nombres
istio-systemyasm-systempara quitar la malla de servicios del clúster o usarlos en otra malla de servicios compatible con la API de Istio.Quita las CR de Istio:
kubectl delete gateways,virtualservices,destinationrules,serviceentries,envoyfilters,sidecars,peerauthentications,requestauthentications,authorizationpolicies,telemetries,wasmplugins,proxyconfigs --all --all-namespacesQuita las CRD de Istio:
kubectl get crds -o name | grep --color=never 'istio.io' | xargs kubectl deleteQuita el ConfigMap istio-(revisión). Puedes omitir este paso si borras el espacio de nombres
istio-system.kubectl delete configmap istio-RELEASE_CHANNEL -n istio-systemReemplaza RELEASE_CHANNEL por tu canal de versiones
Quita el espacio de nombres
istio-system:kubectl delete namespace istio-system --ignore-not-found=trueQuita el espacio de nombres
asm-system:kubectl delete namespace asm-system --ignore-not-found=trueVerifica si las eliminaciones se realizaron de forma correcta:
kubectl get ns ``` The output should indicate a `Terminating` state and return as shown, otherwise you might have to manually delete any remaining resources in the namespaces and try again. ```sh NAME STATUS AGE istio-system Terminating 71m asm-system Terminating 71m ```
Si borrarás tus clústeres o ya los borraste, asegúrate de que cada clúster esté dado de baja de tu flota.
Si planeas dejar de usar Cloud Service Mesh a nivel de la flota, inhabilita la función de malla de servicios para tu proyecto host de la flota.
gcloud container hub mesh disable --project FLEET_PROJECT_IDEn el ejemplo anterior, FLEET_PROJECT_ID es el ID de tu proyecto host de la flota.
Una vez que completes estos pasos, todos los componentes de Cloud Service Mesh, incluidos los proxies, las autoridades de certificación en el clúster y los roles y las vinculaciones de RBAC, se quitarán sistemáticamente del clúster. Durante el proceso de instalación, se le otorga a una cuenta de servicio propiedad de Google los permisos necesarios para establecer los recursos de la malla de servicios dentro del clúster. Estas instrucciones de desinstalación no revocan estos permisos, lo que permite una reactivación sin problemas de Cloud Service Mesh en el futuro.