Eliminar la aplicación web de comercio electrónico desplegada en Kubernetes

Last reviewed 2023-08-29 UTC

En esta guía se describe cómo eliminar la solución de inicio rápido de la aplicación web de comercio electrónico desplegada en Kubernetes. Puedes usar esta guía para eliminar una implementación de la solución. Ya no se puede desplegar una aplicación web de comercio electrónico en Kubernetes desde la Google Cloud consola y no se admite.

Coste

Consulta la página Aplicación web de comercio electrónico desplegada en Kubernetes para ver una estimación del coste mensual en función de las ubicaciones de recursos predeterminadas y el tiempo de uso estimado. Puedes consultar más información sobre los precios de GKE, Autopilot y Multi Cluster Ingress en la página de precios de GKE.

Obtener los permisos de gestión de identidades y accesos necesarios

Para eliminar una implementación, necesita los permisos de Gestión de Identidades y Accesos (IAM) que se indican en la siguiente tabla. Si tienes el roles/owner rol básico del proyecto en el que se ha implementado la solución, ya tienes todos los permisos necesarios. Si no tienes el rol roles/owner, pide a tu administrador que te conceda estos permisos (o los roles que incluyan estos permisos).

Se necesita el permiso de gestión de identidades y accesos Rol predefinido que incluye los permisos necesarios

serviceusage.services.enable

Administrador de Uso de Servicio
(roles/serviceusage.serviceUsageAdmin)

iam.serviceAccounts.create

Administrador de cuentas de servicio
(roles/iam.serviceAccountAdmin)

resourcemanager.projects.setIamPolicy

Administrador de IAM del proyecto
(roles/resourcemanager.projectIamAdmin)
config.deployments.create
config.deployments.list
Administrador de Cloud Infrastructure Manager
(roles/config.admin)

Cuenta de servicio creada para la solución

Cuando inicias el proceso de eliminación a través de la consola, se crea una cuenta de servicio para implementar la solución en tu nombre (y para eliminar la implementación más adelante si quieres). A esta cuenta de servicio se le asignan ciertos permisos de gestión de identidades y accesos temporalmente, es decir, los permisos se revocan automáticamente una vez que se completan las operaciones de implementación y eliminación de la solución. Google recomienda que, después de eliminar la implementación, elimines la cuenta de servicio, tal como se describe más adelante en esta guía.

Ver los roles asignados a la cuenta de servicio

Estos roles se indican aquí por si un administrador de tuGoogle Cloud proyecto u organización necesita esta información.

  • roles/container.admin
  • roles/gkehub.editor
  • roles/compute.networkAdmin
  • roles/iam.serviceAccountAdmin
  • roles/iam.serviceAccountUser
  • roles/resourcemanager.projectIamAdmin
  • roles/serviceusage.serviceUsageAdmin

Eliminar el despliegue

Cuando ya no necesites el despliegue de la solución, elimínalo para evitar que se te siga facturando por los recursos que has creado.

Eliminar a través de la consola

Sigue este procedimiento si has implementado la solución a través de la consola.

  1. En la Google Cloud consola, ve a la página Implementaciones de soluciones.

    Ir a Despliegues de soluciones

  2. Selecciona el proyecto que contenga la implementación que quieras eliminar.

  3. Busca el despliegue que quieras eliminar.

  4. En la fila de la implementación, haga clic en Acciones y, a continuación, seleccione Eliminar.

    Es posible que tengas que desplazarte para ver Acciones en la fila.

  5. Introduce el nombre del lanzamiento y haz clic en Confirmar.

    En el campo Estado se muestra Eliminando.

    Si no se puede eliminar, consulta la guía para solucionar problemas en Error al eliminar un despliegue.

Cuando ya no necesites el proyecto que has usado para la solución, puedes eliminarlo. Google Cloud Para obtener más información, consulta Opcional: Eliminar el proyecto.

Eliminar con la CLI de Terraform

Sigue este procedimiento si has desplegado la solución con la CLI de Terraform.

  1. En Cloud Shell, comprueba que el directorio de trabajo actual sea $HOME/cloudshell_open/terraform-ecommerce-microservices-on-gke/infra. Si no es así, ve a ese directorio.

  2. Elimina los recursos aprovisionados por Terraform:

    terraform destroy
    

    Terraform muestra una lista de los recursos que se van a destruir.

  3. Cuando se te pida que realices las acciones, escribe yes.

    Terraform muestra mensajes que indican el progreso. Una vez que se hayan eliminado todos los recursos, Terraform mostrará el siguiente mensaje:

    Destroy complete!
    

    Si no se puede eliminar, consulta la guía para solucionar problemas en Error al eliminar un despliegue.

Cuando ya no necesites el proyecto que has usado para la solución, puedes eliminarlo. Google Cloud Para obtener más información, consulta Opcional: Eliminar el proyecto.

Opcional: Eliminar el proyecto

Si has implementado la solución en un proyecto nuevo y ya no lo necesitas, elimínalo siguiendo estos pasos: Google Cloud

  1. En la Google Cloud consola, ve a la página Gestionar recursos.

    Ir a Gestionar recursos

  2. En la lista de proyectos, selecciona el proyecto que quieras eliminar y haz clic en Eliminar.
  3. Cuando se te pida, escribe el ID del proyecto y haz clic en Cerrar.

Si decides conservar el proyecto, elimina la cuenta de servicio que se creó para esta solución, tal como se describe en la sección siguiente.

Opcional: Eliminar la cuenta de servicio

Si has eliminado el proyecto que has usado para la solución, puedes saltarte esta sección.

Como se ha mencionado anteriormente en esta guía, cuando implementaste la solución, se creó una cuenta de servicio en tu nombre. A la cuenta de servicio se le han asignado ciertos permisos de gestión de identidades y accesos temporalmente, es decir, los permisos se han revocado automáticamente una vez completadas las operaciones de implementación y eliminación de la solución, pero la cuenta de servicio no se ha eliminado. Google recomienda que elimines esta cuenta de servicio.

  • Si has implementado la solución a través de la Google Cloud consola, ve a la página Implementaciones de soluciones. Si ya estás en esa página, actualiza el navegador. Se activará un proceso en segundo plano para eliminar la cuenta de servicio. No es necesario hacer nada más.

  • Si has desplegado la solución con la CLI de Terraform, sigue estos pasos:

    1. En la Google Cloud consola, ve a la página Cuentas de servicio.

      Ir a Cuentas de servicio

    2. Selecciona el proyecto que has usado para la solución.

    3. Selecciona la cuenta de servicio que quieras eliminar.

      El ID de correo de la cuenta de servicio que se ha creado para la solución tiene el siguiente formato:

      goog-sc-DEPLOYMENT_NAME-NNN@PROJECT_ID.iam.gserviceaccount.com
      

      El ID de correo contiene los siguientes valores:

      • DEPLOYMENT_NAME: el nombre del despliegue.
      • NNN: un número aleatorio de 3 dígitos.
      • PROJECT_ID: el ID del proyecto en el que has implementado la solución.
    4. Haz clic en Eliminar.

Solución de errores

Las acciones que puedes llevar a cabo para diagnosticar y resolver errores dependen del método de implementación y de la complejidad del error.

Error al eliminar una implementación

En algunos casos, es posible que no se pueda eliminar un despliegue:

  • Después de implementar una solución a través de la consola, si cambias algún recurso que haya aprovisionado la solución y, a continuación, intentas eliminar la implementación, es posible que no se pueda eliminar. En el campo Estado de la página Implementaciones de soluciones se muestra el valor Fallo y el registro de Cloud Build muestra la causa del error.
  • Después de desplegar una solución con la CLI de Terraform, si cambias algún recurso con una interfaz que no sea de Terraform (por ejemplo, la consola) y, a continuación, intentas eliminar el despliegue, es posible que no se pueda eliminar. Los mensajes de la salida del comando terraform destroy muestran la causa del error.

Revisa los registros y mensajes de error, identifica y elimina los recursos que han provocado el error y, a continuación, vuelve a intentar eliminar la implementación.

Si no se elimina un despliegue basado en la consola y no puedes diagnosticar el error con el registro de Cloud Build, puedes eliminar el despliegue con la CLI de Terraform, tal como se describe en la siguiente sección.

Eliminar un despliegue basado en consola con la CLI de Terraform

En esta sección se describe cómo eliminar una implementación basada en la consola si se producen errores al intentar eliminarla a través de la consola. Con este método, descargas la configuración de Terraform del despliegue que quieres eliminar y, a continuación, usas la CLI de Terraform para eliminarlo.

  1. Identifica la región en la que se almacenan el código de Terraform, los registros y otros datos de la implementación. Esta región puede ser diferente de la que seleccionaste al implementar la solución.

    1. En la Google Cloud consola, ve a la página Implementaciones de soluciones.

      Ir a Despliegues de soluciones

    2. Selecciona el proyecto que contenga la implementación que quieras eliminar.

    3. En la lista de implementaciones, busque la fila de la implementación que quiera eliminar.

    4. Haz clic en Ver todo el contenido de la fila.

    5. En la columna Ubicación, anota la segunda ubicación, tal como se destaca en el siguiente ejemplo:

      Ubicación del código de implementación, los registros y otros artefactos.

  2. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  3. Crea variables de entorno para el ID del proyecto, la región y el nombre de la implementación que quieras eliminar:

    export REGION="REGION"
    export PROJECT_ID="PROJECT_ID"
    export DEPLOYMENT_NAME="DEPLOYMENT_NAME"
    

    En estos comandos, sustituye lo siguiente:

    • REGION: la ubicación que has anotado anteriormente en este procedimiento.
    • PROJECT_ID: el ID del proyecto en el que has implementado la solución.
    • DEPLOYMENT_NAME: el nombre de la implementación que quieres eliminar.
  4. Obtén el ID de la última revisión del despliegue que quieras eliminar:

    export REVISION_ID=$(curl \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \
        | jq .latestRevision -r)
        echo $REVISION_ID
    

    El resultado debería ser similar al siguiente:

    projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME/revisions/r-0
    
  5. Obtén la ubicación de Cloud Storage de la configuración de Terraform de la implementación:

    export CONTENT_PATH=$(curl \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/${REVISION_ID}" \
        | jq .applyResults.content -r)
        echo $CONTENT_PATH
    

    A continuación, se muestra un ejemplo del resultado de este comando:

    gs://PROJECT_ID-REGION-blueprint-config/DEPLOYMENT_NAME/r-0/apply_results/content
    
  6. Descarga la configuración de Terraform de Cloud Storage a Cloud Shell:

    gcloud storage cp $CONTENT_PATH $HOME --recursive
    cd $HOME/content/infra
    

    Espera a que se muestre el mensaje Operation completed, como se muestra en el siguiente ejemplo:

    Operation completed over 45 objects/268.5 KiB
    
  7. Inicializa Terraform:

    terraform init
    

    Espera hasta que veas el siguiente mensaje:

    Terraform has been successfully initialized!
    
  8. Elimina los recursos implementados:

    terraform destroy
    

    Terraform muestra una lista de los recursos que se van a destruir.

    Si se muestra alguna advertencia sobre variables no declaradas, ignórala.

  9. Cuando se te pida que realices las acciones, escribe yes.

    Terraform muestra mensajes que indican el progreso. Una vez que se hayan eliminado todos los recursos, Terraform mostrará el siguiente mensaje:

    Destroy complete!
    
  10. Elimina el artefacto de implementación:

    curl -X DELETE \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}?force=true&delete_policy=abandon"
    
  11. Espera unos segundos y, a continuación, comprueba que se ha eliminado el artefacto de implementación:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \
        | jq .error.message
    

    Si el resultado muestra null, espera unos segundos y vuelve a ejecutar el comando.

    Una vez que se elimina el artefacto de implementación, se muestra un mensaje como el del ejemplo siguiente:

    Resource 'projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME' was not found
    
  12. Siguientes pasos