Implementa Bookinfo

En esta página, se explica cómo implementar una aplicación de muestra en Anthos Service Mesh. Si no instalaste Anthos Service Mesh, consulta la sección Guías de instalación a fin de elegir la guía adecuada para ti.

Varias aplicaciones de muestra incluyen la instalación de Anthos Service Mesh. En esta guía, aprenderás a implementar la aplicación de muestra BookInfo. Se trata de una aplicación sencilla que simula una librería, formada por cuatro servicios que proporcionan una página web de productos, detalles de libros, reseñas (con varias versiones del servicio de reseñas) y clasificaciones, todo administrado mediante Anthos Service Mesh. Puedes encontrar el código fuente y todos los demás archivos que se usaron en este ejemplo en el directorio de instalación de Anthos Service Mesh en samples/bookinfo.

Implementa la aplicación

Sigue estos pasos para implementar los servicios de la aplicación Bookinfo con los proxies de sidecar incorporados en cada servicio.

  1. En la línea de comandos de la computadora en la que instalaste Anthos Service Mesh, ve a la raíz del directorio de instalación de Anthos Service Mesh.

  2. Habilita la inserción automática de sidecar: Usa el siguiente comando para ubicar la etiqueta en istiod, que contiene el valor de la etiqueta de revisión que se usará en pasos posteriores.

    kubectl -n istio-system get pods -l app=istiod --show-labels

    El resultado es similar al siguiente:

    NAME                                READY   STATUS    RESTARTS   AGE   LABELS
    istiod-asm-173-3-5788d57586-bljj4   1/1     Running   0          23h   app=istiod,istio.io/rev=asm-173-3,istio=istiod,pod-template-hash=5788d57586
    istiod-asm-173-3-5788d57586-vsklm   1/1     Running   1          23h   app=istiod,istio.io/rev=asm-173-3,istio=istiod,pod-template-hash=5788d57586
    

    En el resultado, en la columna LABELS, observa el valor de la etiqueta de revisión istiod, que está después del prefijo istio.io/rev=. En este ejemplo, el valor es asm-173-3.

  3. Aplica la etiqueta de revisión a los espacios de nombres. En el siguiente comando, NAMESPACE es el nombre del espacio de nombres en el que quieres que se produzca la inserción del archivo adicional y REVISION es el valor de la etiqueta de revisión istiod que anotaste en el paso anterior.

    kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION --overwrite
    
  4. Implementa la aplicación mediante kubectl:

    kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
  5. Para confirmar que la aplicación se implementó de forma correcta, ejecuta los siguientes comandos:

    kubectl get services
    Resultado:
    NAME                       CLUSTER-IP   EXTERNAL-IP   PORT(S)              AGE
    details                    10.0.0.31    <none>        9080/TCP             6m
    kubernetes                 10.0.0.1     <none>        443/TCP              7d
    productpage                10.0.0.120   <none>        9080/TCP             6m
    ratings                    10.0.0.15    <none>        9080/TCP             6m
    reviews                    10.0.0.170   <none>        9080/TCP             6m

    y

    kubectl get pod
    Resultado:
    NAME                                        READY     STATUS    RESTARTS   AGE
    details-v1-1520924117-48z17                 2/2       Running   0          6m
    productpage-v1-560495357-jk1lz              2/2       Running   0          6m
    ratings-v1-734492171-rnr5l                  2/2       Running   0          6m
    reviews-v1-874083890-f0qf0                  2/2       Running   0          6m
    reviews-v2-1343845940-b34q5                 2/2       Running   0          6m
    reviews-v3-1813607990-8ch52                 2/2       Running   0          6m
  6. Por último, define el enrutamiento de la puerta de enlace de entrada para la aplicación:

    kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
    

Valida la implementación de la aplicación

Para comprobar que la aplicación Bookinfo funcione, envía tráfico a la puerta de enlace de entrada.

  • Si instalaste Anthos Service Mesh en GKE en VMware, obtén la dirección IP externa de la puerta de enlace de entrada que configuraste después de instalar Anthos Service Mesh.

  • Si instalaste Anthos Service Mesh en GKE, obtén la dirección IP externa de la puerta de enlace de entrada de la siguiente manera:

    kubectl get svc istio-ingressgateway -n istio-system
    
    Salida:
    NAME                   TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                                      AGE
    istio-ingressgateway   LoadBalancer   10.19.247.233   35.239.7.64   80:31380/TCP,443:31390/TCP,31400:31400/TCP   27m

    En este ejemplo, la dirección IP del servicio de entrada es 35.239.7.64.

Prueba la aplicación

  1. Verifica que la app Bookinfo se ejecute con curl:

    curl -I http://EXTERNAL_IP/productpage

    Si la respuesta muestra 200, significa que la aplicación funciona de forma correcta con Anthos Service Mesh.

  2. Para ver la página web de Bookinfo, ingresa la siguiente dirección en tu navegador:

    http://EXTERNAL_IP/productpage

    Si actualizas la página varias veces, deberías ver diferentes versiones de reseñas que se muestran en la página de productos, que se presentan en un estilo round robin (estrellas rojas, negras, sin estrellas).

Ahora que tienes una aplicación que genera tráfico, puedes explorar las páginas de Anthos Service Mesh en la consola de Google Cloud para ver las métricas y otras funciones de observabilidad.

¿Qué sigue?

Obtén más información sobre la aplicación de muestra Bookinfo.

Realice una limpieza

Cuando termines de hacer pruebas con la muestra Bookinfo, quítala del clúster.

  1. Desinstala Bookinfo mediante la siguiente secuencia de comandos:

    samples/bookinfo/platform/kube/cleanup.sh
  2. Confirma la finalización:

    kubectl get services
    kubectl get pods

    Los pods de Bookinfo deben borrarse.