Desinstala Anthos Service Mesh.

En esta página, se explica cómo desinstalar Anthos Service Mesh.

Desinstala Anthos Service Mesh.

Usa los siguientes comandos para desinstalar todos los componentes de Anthos Service Mesh. Por medio de estos comandos, también se borran el espacio de nombres istio-system y todas las definiciones de los recursos personalizados (CRD), incluidas las CRD que aplicaste.

  1. Para evitar la interrupción del tráfico de la aplicación:

    • Cambia las políticas STRICT de mTLS a PERMISSIVE.
    • Quita cualquier AuthorizationPolicy que pueda bloquear el tráfico.
  2. Inhabilita la administración automática en este clúster (ya sea que la hayas aplicado directamente o con la configuración predeterminada de la flota):

      gcloud container fleet mesh update --management manual
    
  3. Inhabilita la inserció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 es similar al siguiente:

     NAME   STATUS   AGE     LABELS
     demo   Active   4d17h   istio.io/rev=asm-181-5

    Si ves istio.io/rev= en el resultado en la columna LABELS, quítalo:

     kubectl label namespace YOUR_NAMESPACE istio.io/rev-
    

    Si ves istio-injection en el resultado en la columna LABELS, quítalo:

     kubectl label namespace YOUR_NAMESPACE istio-injection-
    

    Si no ves las etiquetas istio.io/rev o istio-injection, la inyección automática no se habilitó en el espacio de nombres.

  4. Reinicia tus cargas de trabajo que tienen incorporados sidecars para quitar los proxies.

  5. Si usas Anthos Service Mesh administrado, quita los recursos controlplanerevision del clúster:

    kubectl delete controlplanerevision RELEASE_CHANNEL -n istio-system
    

    En la que RELEASE_CHANNEL es el canal de versiones que aprovisionaste, como asm-managed, asm-managed-rapid o asm-managed-stable.

  6. Borra los webhooks del clúster, si existen.

    Anthos Service Mesh en el clúster

    Borra la validatingwebhooksconfiguration y la mutatingwebhookconfiguration.

    kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot
    

    Anthos Service Mesh administrado

    A. Borra la validatingwebhooksconfiguration.

    kubectl delete validatingwebhookconfiguration istiod-istio-system-mcp
    

    B. Borra la mutatingwebhookconfiguration.

    kubectl delete mutatingwebhookconfiguration istiod-RELEASE_CHANNEL
    
  7. Una 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. Si implementaste un plano de control administrado, se borra de forma automática con el paso anterior.

    Para quitar el plano de control en el clúster, ejecuta el siguiente comando:

    istioctl x uninstall --purge
    

    Si no hay otros planos de control, puedes borrar el espacio de nombres istio-system para deshacerte de todos los recursos de Anthos Service Mesh. De lo contrario, borra los servicios correspondientes a las revisiones de Anthos Service Mesh. Esto evita borrar recursos compartidos, como CRD.

  8. Borra los espacios de nombres istio-system y asm-system:

     kubectl delete namespace istio-system asm-system --ignore-not-found=true
    
  9. Verifica si las eliminaciones se realizaron de forma correcta:

     kubectl get ns
    

    El resultado debe indicar un estado Terminating y mostrarlo como se indica a continuación. De lo contrario, es posible que debas borrar de forma manual los recursos restantes en el espacio de nombres y volver a intentarlo.

     NAME                 STATUS       AGE
     istio-system         Terminating  71m
     asm-system           Terminating  71m
    
    1. Si borrarás tus clústeres o ya los borraste, asegúrate de que cada uno de ellos no esté registrado en tu flota.
  10. Si habilitaste la configuración predeterminada de la flota administrada de Anthos Service Mesh y deseas inhabilitarla para futuros clústeres, inhabilítala. Puedes omitir este paso si solo desinstalas desde un único clúster.

     gcloud container hub mesh disable --fleet-default-member-config --project FLEET_PROJECT_ID
    

    En el que FLEET_PROJECT_ID es el ID del proyecto host de la flota.

  11. Si usas Anthos Service Mesh administrado, borra la implementación mdp-controller:

     kubectl delete deployment mdp-controller -n kube-system
    
  12. Verifica si el ConfigMap istio-cni-plugin-config está presente:

     kubectl get configmap istio-cni-plugin-config -n kube-system
    

    Si está presente, borra el configmap istio-cni-plugin-config:

     kubectl delete configmap istio-cni-plugin-config -n kube-system
    
  13. Borra el daemonset istio-cni-node:

     kubectl delete daemonset istio-cni-node -n kube-system
    

Una vez que se completan estos pasos, todos los componentes de Anthos Service Mesh, incluidos los proxies, las autoridades certificadas en el clúster y las funciones y vinculaciones de RBAC, se quitan del clúster de forma sistemática. Durante el proceso de instalación, a una cuenta de servicio propiedad de Google se le otorgan 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 interrupciones de Anthos Service Mesh en el futuro.