Desinstalar Cloud Service Mesh
En esta página se explica cómo desinstalar Cloud Service Mesh.
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
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, elimina los
controlplanerevision
recursos del clúster:kubectl delete controlplanerevision RELEASE_CHANNEL -n istio-system
RELEASE_CHANNEL es el canal de lanzamiento que has aprovisionado, como
asm-managed
,asm-managed-rapid
oasm-managed-stable
.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
Cloud Service Mesh gestionado
A. Elimina el
validatingwebhooksconfiguration
.kubectl delete validatingwebhookconfiguration istiod-istio-system-mcp
B. Elimina el
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. Si has implementado un plano de control gestionado, se elimina automáticamente en el paso anterior.
Para quitar el plano de control del clúster, ejecuta el siguiente comando:
istioctl x 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 usas Cloud Service Mesh gestionado, elimina la implementación
mdp-controller
:kubectl delete deployment mdp-controller -n kube-system
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
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.