Desinstalar Cloud Service Mesh
En esta página se explica cómo desinstalar Cloud Service Mesh si usas las APIs de Istio. Si usas las APIs de Compute Engine, no es necesario que hagas nada. Consulta la información general sobre Cloud Service Mesh para conocer las diferencias.
Si sigues estas instrucciones para desinstalar Cloud Service Mesh, se eliminarán todas las configuraciones, independientemente del tipo de plano de control (en el clúster o gestionado). Si vas a migrar de un clúster a un clúster gestionado, consulta la guía de migración.
Desinstalar Cloud Service Mesh
Usa los siguientes comandos para desinstalar todos los componentes de Cloud Service Mesh. Estos comandos también eliminan el espacio de nombres istio-system
y todas las definiciones de recursos personalizados (CRDs), incluidas las que hayas aplicado.
Para evitar que se interrumpa el tráfico de la aplicación, haz lo siguiente:
- Cambia cualquier política de mTLS STRICT a PERMISSIVE.
- Elimina cualquier AuthorizationPolicy que pueda bloquear el tráfico.
Inhabilita la gestión automática en este clúster (tanto si la has aplicado directamente como si lo has hecho mediante la configuración predeterminada de la flota):
gcloud container fleet mesh update \ --management manual \ --memberships MEMBERSHIP_NAME \ --project FLEET_PROJECT_ID \ --location MEMBERSHIP_LOCATION
Haz los cambios siguientes:
- MEMBERSHIP_NAME es el nombre de miembro que aparece cuando verificas que tu clúster se ha registrado en la flota.
- MEMBERSHIP_LOCATION es la ubicación de tu suscripción (una región o
global
).
Inhabilita la inyección automática de sidecar en tus espacios de nombres, si está habilitada. Ejecuta el siguiente comando para mostrar las etiquetas de espacio de nombres:
kubectl get namespace YOUR_NAMESPACE --show-labels
El resultado debería ser similar al siguiente:
NAME STATUS AGE LABELS demo Active 4d17h istio.io/rev=asm-181-5
Si ves
istio.io/rev=
en la salida de la columnaLABELS
, quítalo:kubectl label namespace YOUR_NAMESPACE istio.io/rev-
Si ves
istio-injection
en la salida de la columnaLABELS
, quítalo:kubectl label namespace YOUR_NAMESPACE istio-injection-
Si no ves las etiquetas
istio.io/rev
oistio-injection
, significa que la inyección automática no está habilitada en el espacio de nombres.Reinicia las cargas de trabajo a las que se les hayan insertado sidecars para quitar los proxies.
Si usas Cloud Service Mesh gestionado, comprueba qué implementación del plano de control tienes en tu clúster. Esto te ayudará a eliminar los recursos pertinentes en los pasos siguientes.
Si usas Cloud Service Mesh gestionado, elimina todos los recursos
controlplanerevision
del clúster:kubectl delete controlplanerevision asm-managed asm-managed-rapid asm-managed-stable -n istio-system --ignore-not-found=true
Elimina los webhooks de tu clúster, si los hay.
Cloud Service Mesh en clúster
Elimina
validatingwebhooksconfiguration
ymutatingwebhookconfiguration
.kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot,istio.io/owned-by!=mesh.googleapis.com
Cloud Service Mesh gestionado
A. Elimina el
validatingwebhooksconfiguration
.kubectl delete validatingwebhookconfiguration istiod-istio-system-mcp
B. Eliminar toda la
mutatingwebhookconfiguration
.kubectl delete mutatingwebhookconfiguration istiod-RELEASE_CHANNEL
Una vez que se hayan iniciado todas las cargas de trabajo y no se observen proxies, podrás eliminar de forma segura el plano de control del clúster para detener la facturación.
Para quitar el plano de control en el clúster, ejecuta el siguiente comando:
istioctl uninstall --purge
Si no hay más planos de control, puedes eliminar el espacio de nombres
istio-system
para deshacerte de todos los recursos de Cloud Service Mesh. De lo contrario, elimina los servicios correspondientes a las revisiones de Cloud Service Mesh. De esta forma, no se eliminan los recursos compartidos, como los CRDs.Elimina los espacios de nombres
istio-system
yasm-system
:kubectl delete namespace istio-system asm-system --ignore-not-found=true
Comprueba si las eliminaciones se han realizado correctamente:
kubectl get ns
El resultado debe indicar el estado
Terminating
y mostrarse como se indica a continuación. De lo contrario, es posible que tengas que eliminar manualmente los recursos restantes en los espacios de nombres e intentarlo de nuevo.NAME STATUS AGE istio-system Terminating 71m asm-system Terminating 71m
Si vas a eliminar tus clústeres o ya lo has hecho, asegúrate de que cada clúster esté desregistrado de tu flota.
Si has habilitado la configuración predeterminada de la flota de Cloud Service Mesh gestionado y quieres inhabilitarla para futuros clústeres, inhabilítala. Puedes saltarte este paso si solo vas a desinstalar el controlador de un clúster.
gcloud container hub mesh disable --fleet-default-member-config --project FLEET_PROJECT_ID
Donde FLEET_PROJECT_ID es el ID de tu proyecto de host de flota.
Si tienes previsto dejar de usar Cloud Service Mesh a nivel de flota, inhabilita la función de service mesh en el proyecto host de tu flota.
gcloud container hub mesh disable --project FLEET_PROJECT_ID
Donde FLEET_PROJECT_ID es el ID de tu proyecto de host de flota.
Si has habilitado Cloud Service Mesh gestionado, comprueba y elimina los recursos gestionados si se dan estas circunstancias:
Elimina la implementación de
mdp-controller
:kubectl delete deployment mdp-controller -n kube-system
Si tienes la implementación del
TRAFFIC_DIRECTOR
plano de control, limpia los recursos de comprobación de estado transparente. Normalmente, se eliminan automáticamente, pero puedes asegurarte de que se borren siguiendo estos pasos:Elimina el conjunto de daemons
snk
.kubectl delete daemonset snk -n kube-system
Elimina la regla de cortafuegos.
gcloud compute firewall-rules delete gke-csm-thc-FIRST_8_CHARS_OF_CLUSTER_ID
Haz los cambios siguientes:
- FIRST_8_CHARS_OF_CLUSTER_ID son los ocho primeros caracteres del ID de clúster de tu clúster específico.
Comprueba si el mapa de configuración
istio-cni-plugin-config
está presente:kubectl get configmap istio-cni-plugin-config -n kube-system
Si está presente, elimina el
istio-cni-plugin-config
configmap:kubectl delete configmap istio-cni-plugin-config -n kube-system
Elimina el conjunto de daemons
istio-cni-node
:kubectl delete daemonset istio-cni-node -n kube-system
Si vas a desinstalar Cloud Service Mesh gestionado, ponte en contacto con el equipo de Asistencia para asegurarte de que se eliminan todos los recursos deGoogle Cloud . Si no sigues este paso, es posible que el espacio de nombres
istio-system
y los mapas de configuración se sigan recreando.
Cuando completes estos pasos, todos los componentes de Cloud Service Mesh, incluidos los proxies, las autoridades de certificación del clúster y los roles y enlaces de RBAC, se eliminarán sistemáticamente del clúster. Durante el proceso de instalación, se conceden los permisos necesarios a una cuenta de servicio propiedad de Google para establecer los recursos de la malla de servicios en el clúster. Estas instrucciones de desinstalación no revocan estos permisos, lo que permite reactivar Cloud Service Mesh sin problemas en el futuro.
.