Explora GKE Enterprise


Explora la edición Google Kubernetes Engine (GKE) Enterprise mediante la implementación de una aplicación de muestra con Terraform. Implementa un entorno práctico real con un clúster de GKE, Anthos Service Mesh y una aplicación con varios microservicios. En este instructivo, se presentan estas funciones y se brinda información sobre GKE Enterprise implementado en Google Cloud con un banco ficticio. Luego, puedes explorar las funciones de GKE Enterprise que te interesan. Para ello, sigue la historia de GKE Enterprise del banco con más detalle en nuestro instructivo de seguimiento.

Si deseas obtener más información sobre las funciones de GKE Enterprise que impulsan GKE Enterprise, consulta nuestra descripción general técnica. Sin embargo, no necesitas conocer GKE Enterprise o Terraform para seguir este instructivo. Debes conocer los conceptos básicos de Kubernetes, como los clústeres. Si no los conoces, consulta los conceptos básicos de Kubernetes, la documentación de Google Kubernetes Engine (GKE) y Prepara una app para Anthos Service Mesh.

Cuando estés listo para realizar una instalación de producción real, consulta nuestra sección de Configuración.

Tu recorrido

Eres el líder de la plataforma en el Bank of Anthos. Bank of Anthos comenzó como una pequeña empresa para el procesamiento de pagos en dos servidores hace casi diez años. Desde entonces, se ha convertido en un banco comercial exitoso con miles de empleados y una organización de ingeniería en crecimiento. Bank of Anthos ahora desea expandir su negocio aún más.

Durante este período, tú y tu equipo han invertido más tiempo y dinero en mantener la infraestructura que en crear un nuevo valor empresarial. Tienes décadas de experiencia acumulada en tu estructura de datos actual. Sin embargo, sabes que no es la tecnología adecuada para cumplir con la escala de implementación global que el banco necesita a medida que se expande.

Adoptaste GKE Enterprise para modernizar tu aplicación y migrar de manera correcta a Google Cloud para lograr tus objetivos de expansión.

Objetivos

En este instructivo, se presentan algunas de las características clave de GKE Enterprise mediante las siguientes tareas:

  • Implementa tu entorno de GKE Enterprise con un clúster, una aplicación y funciones empresariales: Anthos Service Mesh, el Sincronizador de configuración y Policy Controller.

  • Usa la consola de Google Cloud para explorar los recursos de GKE que usa tu aplicación.

  • Usar Anthos Service Mesh para observar servicios de aplicación.

¿Qué se implementa?

La implementación de Bank of Anthos en Google Cloud aprovisiona tu proyecto con los siguientes elementos:

  • Un clúster de GKE que se ejecuta en Google Cloud: anthos-sample-cluster1.

  • Anthos Service Mesh instalado en el clúster. Usarás Anthos Service Mesh para administrar la malla de servicios en anthos-sample-cluster1.

  • El Sincronizador de configuración y Policy Controller para administrar la configuración y las políticas de seguridad en anthos-sample-cluster1.

  • Aplicación Bank of Anthos que se ejecuta en el clúster. Esta es una aplicación bancaria basada en la Web que usa varios microservicios escritos en varios lenguajes de programación, incluidos Java, Python y JavaScript.

Costos

La implementación de la aplicación Bank of Anthos generará cargos de pago por uso para GKE Enterprise en Google Cloud, como se muestra en nuestra página de precios, a menos que ya hayas comprado una suscripción.

También eres responsable de otros costos de Google Cloud generados mientras ejecutas la aplicación de Bank of Anthos, como los cargos por las VMs de Compute Engine y los balanceadores de cargas.

Recomendamos realizar una limpieza después de finalizar el instructivo o explorar la implementación para evitar que se generen cargos adicionales.

Antes de comenzar

Asegúrate de completar los siguientes requisitos.

Selecciona o crea un proyecto

Puedes usar un proyecto existente o crear uno nuevo para este instructivo.

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  4. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  5. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

Activa Cloud Shell

Cloud Shell es un entorno de shell interactivo para Google Cloud que te permite administrar proyectos y recursos desde el navegador web.

En la consola de Google Cloud, activa Cloud Shell.

Activar Cloud Shell

Asigna roles de IAM

Si usas un proyecto existente, asegúrate de que tu cuenta de Google Cloud tenga los roles de IAM necesarios para este instructivo.

Otorga roles a tu Cuenta de Google. Ejecuta el siguiente comando una vez para cada uno de los siguientes roles de IAM: roles/resourcemanager.projectIamAdmin, roles/iam.serviceAccountAdmin, roles/iam.serviceAccountUser, roles/iam.securityAdmin, roles/serviceusage.serviceUsageAdmin, roles/container.admin, roles/logging.logWriter, roles/gkehub.admin, roles/viewer, roles/monitoring.viewer

$ gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
  • Reemplaza PROJECT_ID con el ID del proyecto.
  • Reemplaza EMAIL_ADDRESS por tu dirección de correo electrónico.
  • Reemplaza ROLE por cada rol individual.

Implementa Bank of Anthos mediante Terraform

Una vez que se cumplan todos los requisitos, ejecuta los siguientes comandos en tu Cloud Shell para implementar Bank of Anthos:

  1. Asegúrate de que tu proyecto predeterminado esté configurado como el ID del proyecto en el que deseas implementar la aplicación. Si aún no está configurado, ejecuta el siguiente comando en Cloud Shell:

    gcloud config set project PROJECT_ID
    

    Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

  2. Clona el repositorio de GitHub de Bank of Anthos en tu Cloud Shell:

    git clone https://github.com/GoogleCloudPlatform/bank-of-anthos.git
    
  3. Establece la variable de entorno TF_VAR_project para el ID de tu proyecto:

    export TF_VAR_project=PROJECT_ID
    

    Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

  4. Ve al directorio en el que se alojan las secuencias de comandos de instalación:

    cd bank-of-anthos/iac/tf-anthos-gke
    
  5. Inicializa Terraform. Para usar la última versión del proveedor de Google, incluye la marca -upgrade:

    terraform init -upgrade
    
  6. Revisa los recursos que se crearán (opcional):

    terraform plan
    
  7. Aplica la configuración de Terraform para crear los recursos necesarios e implementar Bank of Anthos:

    terraform apply
    

Si el comando anterior se completa correctamente, la aplicación de Bank of Anthos y los recursos en los que se ejecuta se implementan en tu proyecto. Si encuentras algún error de implementación, consulta Solución de problemas.

Usa la descripción general de GKE Enterprise

Las capacidades de GKE Enterprise se basan en la idea de la flota: una agrupación lógica de clústeres de Kubernetes que se pueden administrar juntos. La Descripción general de GKE Enterprise en la consola de Google Cloud te proporciona una vista de alto nivel de toda tu flota.

Ir a la descripción general de GKE Enterprise

En la Descripción general, se muestra la siguiente información:

  • Cantidad de clústeres que hay en tu flota y si están en buen estado. En este ejemplo (siempre que no tengas otros clústeres miembros de la flota existentes), la sección Clústeres de esta flota te indica que tienes un clúster de GKE.
  • El uso de recursos de tu flota, incluido el uso de CPU, memoria y disco, agregado por flota y por clúster.
  • Cualquier problema de seguridad identificado para tu flota, la cobertura de Policy Controller en toda la flota y el estado de sincronización de tus paquetes del Sincronizador de configuración.

Explora los recursos de GKE

La página Clústeres de GKE muestra todos los clústeres de tu proyecto. Los clústeres registrados en una flota tienen su flota enumerada en la columna Flota.

En esta sección, analizarás con más detalle los recursos de GKE de Bank of Anthos.

Clústeres

  1. En la consola de Google Kubernetes Engine, ve a la página Clústeres.

    Ir a la página Clústeres

  2. Haz clic en el clúster anthos-sample-cluster1 recién implementado. En la página de detalles del clúster que se abre, puedes ver los detalles básicos del clúster junto con su configuración de red y seguridad. También puedes ver qué funciones de GKE están habilitadas en este clúster en la sección Funciones.

  3. Haz clic en la pestaña Nodos para ver todas las máquinas de trabajador en tu clúster. Puedes desglosar aún más para ver los Pods de carga de trabajo que se ejecutan en cada nodo y un resumen de recursos del nodo (CPU, memoria, almacenamiento).

Puedes obtener más información sobre los clústeres y nodos de GKE en la documentación de GKE.

Cargas de trabajo

La consola de GKE tiene una vista de Cargas de trabajo que muestra una vista agregada de las cargas de trabajo que se ejecutan en todos tus clústeres de GKE.

En la consola de Google Kubernetes Engine, ve a la página Cargas de trabajo.

Ir a la página Cargas de trabajo

En la pestaña Descripción general, se muestra una lista de cargas de trabajo y espacios de nombres del clúster de GKE. Puedes filtrar por espacios de nombres para ver qué cargas de trabajo se ejecutan en cada espacio de nombres.

Ingress y Service

En la vista Ingress y Service, se muestran los recursos Ingress y Service del proyecto. Un Service expone un conjunto de pods como un servicio de red con un extremo, mientras que un Ingress administra el acceso externo a los servicios en un clúster. Sin embargo, en lugar de tener un Ingress de Kubernetes normal, Bank of Anthos usa un servicio de puerta de enlace de entrada de Istio para el tráfico al banco, que los usuarios de Anthos Service Mesh pueden usar a fin de agregar más enrutamiento de tráfico complejo al tráfico entrante de sus mallas. Puedes ver esto en acción cuando uses las características de observabilidad de la malla de servicios más adelante en este instructivo.

  1. En la consola de Google Kubernetes Engine, ve a la página Ingress y Service.

    Ir a la página Ingress y Service

  2. Para encontrar la puerta de enlace de entrada de Bank of Anthos, desplázate hacia abajo en la lista de servicios disponibles y busca el servicio con el nombre frontend. Una puerta de enlace de entrada administra el tráfico entrante para la malla de servicios de la aplicación, por lo que, en este caso, podemos usar sus detalles a fin de visitar el frontend web del banco.

  3. Haz clic en el extremo de la dirección IP del servicio frontend. Esto abrirá la interfaz web de Bank of GKE Enterprise.

Observa los servicios

En GKE Enterprise, Anthos Service Mesh (un conjunto de herramientas con la tecnología de Istio que te ayuda a supervisar y administrar una malla de servicios confiable) brinda administración de servicios y observabilidad. Para obtener más información sobre Anthos Service Mesh y cómo te ayuda a administrar microservicios, consulta la documentación de Anthos Service Mesh. Si no estás familiarizado con el uso de microservicios con contenedores y lo que pueden hacer por ti, consulta la página Prepara una app para Anthos Service Mesh.

En nuestro ejemplo, en el clúster de la implementación de muestra se ejecuta la app de muestra de Bank of Anthos basada en microservicio. La aplicación también incluye una utilidad de loadgenerator que simula una pequeña cantidad de carga en el clúster para que puedas ver las métricas y el tráfico en el panel.

En esta sección, usarás la página Malla de servicios de GKE para ver los servicios y el tráfico de esta aplicación.

En la consola de Google Kubernetes Engine, ve a la página Malla de servicios.

Ir a la página Malla de servicios

La página muestra la vista Lista y la vista Topología en paralelo, que muestra todos los microservicios de tu proyecto, incluidos los servicios del sistema. Es posible que los datos de la página Malla de servicios tarden un poco en propagarse. Si ves un diagrama parcial o nulo en la vista de topología, intenta reiniciar los pods en el clúster, o puedes pasar a la siguiente sección y volver a revisar más tarde.

Usa la vista de lista

Cada fila de la lista es uno de los servicios que conforman la aplicación Bank of Anthos. Por ejemplo, el servicio frontend procesa la interfaz de usuario web de la aplicación, y el servicio userservice administra las cuentas de usuario y la autenticación.

Cada ficha de servicio muestra métricas actualizadas, como la tasa de error del servidor y las solicitudes por segundo para ese servicio. Estas métricas se recopilan de inmediato para los servicios implementados en GKE Enterprise. No es necesario escribir ningún código de aplicación para ver estas estadísticas.

Puedes desglosar esta vista para ver aún más detalles sobre cada servicio. Por ejemplo, para obtener más información sobre el servicio transactionhistory, haz lo siguiente:

  1. Haz clic en transactionhistory en la lista de servicios. En la página de detalles del servicio, se muestra toda la telemetría disponible para este servicio.

  2. En la página transactionhistory, selecciona Servicios conectados en el menú de la izquierda. Aquí puedes ver las conexiones entrantes y salientes para el servicio. Un ícono de bloqueo desbloqueado indica que se ha observado parte del tráfico en este puerto que no se encriptó con TLS mutua (mTLS). Puedes obtener más información sobre cómo funciona esto en el instructivo Protege GKE Enterprise.

    Captura de pantalla de la vista Servicios conectados de Anthos Service Mesh

Usa la vista de topología

La vista de topología te permite enfocarte en cómo interactúan los servicios. Como puedes ver en la leyenda, el gráfico muestra los servicios de Anthos Service Mesh, los servicios de Istio, los Deployments y los Pods de la aplicación. Si deseas expandir esta vista, haz clic en Activar o desactivar panel "Panel izquierdo" en Vista de lista.

Captura de pantalla de la vista de topología de Anthos Service Mesh

Anthos Service Mesh observa de forma automática qué servicios se comunican entre sí para mostrar los detalles de las conexiones entre servicios:

  • Mantén el puntero del mouse sobre un elemento para ver detalles adicionales, incluidas las QPS salientes de cada servicio.

  • Arrastra los nodos con el mouse para mejorar la vista de partes específicas del gráfico.

  • Haz clic en los nodos de servicio para obtener más información.

  • Haz clic en Expandir cuando mantengas el puntero sobre un nodo de carga de trabajo para desglosar y obtener aún más detalles, como la cantidad de instancias de una carga de trabajo que se encuentran en ejecución.

Explora GKE Enterprise aún más

Si bien en este instructivo se mostraron muchas funciones de GKE Enterprise, aún hay mucho más para ver y hacer con nuestra implementación. Visita nuestro instructivo de seguimiento para probar algunas tareas prácticas con GKE Enterprise o continúa explorando la muestra antes de limpiar.

Solucionar problemas

Consulta las siguientes situaciones de solución de problemas si tienes problemas para implementar la aplicación de Bank of Anthos.

APIs de Google Cloud no habilitadas (código 403)

Es posible que veas errores similares a los siguientes:

Error: Error creating Feature: failed to create a diff: failed to retrieve Feature resource: googleapi:
Error 403: GKE Hub API has not been used in project {project-number} before or it is disabled.
Enable it by visiting https://console.developers.google.com/apis/api/gkehub.googleapis.com/overview?project={project-number} then retry.
If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.

Como se sugiere en el error, espera unos minutos para que una API se habilite por completo y vuelve a ejecutar la implementación con terraform apply.

La página Malla de servicios no muestra todos los servicios

Después de implementar la aplicación Bank of Anthos, es posible que debas esperar unos minutos hasta que la página Malla de servicios muestre los microservicios de tu proyecto. Si en la página Malla de servicios no se muestran algunos o todos los servicios, incluso después de unos minutos, significa que es posible que algunos de los proxies de Anthos Service Mesh no se inicien de forma automática junto con las cargas de trabajo de la aplicación.

Para solucionar este problema, reinicia los Pods en el clúster anthos-sample-cluster1:

  • Obtén credenciales para el clúster:

    gcloud container clusters get-credentials anthos-sample-cluster1 --zone us-central1
    
  • Borra los Pods:

    kubectl delete pod -n default --all
    
  • Verifica que los Pods se hayan reiniciado:

    kubectl get pod -n default
    

La página Malla de servicios debería propagarse con los microservicios de tu proyecto en unos minutos.

Limpia

Una vez que termines de explorar la aplicación Bank of Anthos, puedes limpiar los recursos que creaste en Google Cloud para que no consuman tu cuota y no se te facturen en el futuro.

  • Opción 1. Puedes borrar el proyecto. Sin embargo, si deseas conservar el proyecto, puedes usar la opción 2 para borrar la implementación.

  • Opción 2. Si deseas conservar el proyecto actual, puedes usar terraform destroy para borrar la aplicación de muestra y el clúster.

Borra el proyecto (opción 1)

La manera más fácil de evitar la facturación es borrar el proyecto que creaste para el instructivo.

    Borra un proyecto de Google Cloud:

    gcloud projects delete PROJECT_ID

Borra la implementación (opción 2)

Con este enfoque, se borra la aplicación de Bank of Anthos y el clúster, pero no se borra el proyecto. Ejecuta los siguientes comandos en Cloud Shell:

  1. Ve al directorio en el que se alojan las secuencias de comandos de instalación:

    cd bank-of-anthos/iac/tf-anthos-gke
    
  2. Borra la muestra y el clúster:

    terraform destroy
    
  3. Ingresa el ID del proyecto cuando se te solicite.

Si planeas realizar una implementación nueva, verifica que todos los requisitos se cumplan como se describe en la sección Antes de comenzar.

¿Qué sigue?