Implementa la aplicación de muestra Online Boutique

En esta guía, se explica cómo instalar la aplicación de muestra Online Boutique para demostrar el funcionamiento de 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.

Habilita la inserción automática de sidecar

Para habilitar la inserción automática de sidecar (inserción automática) para la aplicación de muestra, debes agregar una etiqueta de revisión al espacio de nombres de la muestra. La etiqueta que agregues depende de si implementaste Anthos Service Mesh administrado o instalaste el plano de control en el clúster. El webhook de inyector de sidecar usa la etiqueta de revisión para asociar los sidecars insertados con una revisión de plano de control en particular.

En el clúster

  1. Crea un espacio de nombres para la aplicación:

    kubectl create namespace demo
    
  2. Usa el siguiente comando para encontrar la etiqueta en istiod:

    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-1106-2-5788d57586-bljj4   1/1     Running   0          23h   app=istiod,istio.io/rev=asm-1106-2,istio=istiod,pod-template-hash=5788d57586
    istiod-asm-1106-2-5788d57586-vsklm   1/1     Running   1          23h   app=istiod,istio.io/rev=asm-1106-2,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-1106-2.

  3. Aplica la etiqueta de revisión al espacio de nombres demo. En el siguiente comando, REVISION es el valor de la etiqueta de revisión istiod que anotaste en el paso anterior.

    kubectl label namespace demo istio-injection- istio.io/rev=REVISION --overwrite
    

    Puedes ignorar el mensaje "istio-injection not found" en el resultado. Esto significa que el espacio de nombres no tenía la etiqueta istio-injection, que debería aparecer en las nuevas instalaciones de Anthos Service Mesh o en implementaciones nuevas. Debido a que la inserción automática falla si un espacio de nombres tiene tanto la istio-injection como la etiqueta de revisión, todos los comandos kubectl label de la documentación de Anthos Service Mesh incluyen la acción de quitar la etiqueta istio-injection.

Malla de servicios administrados

  1. Crea un espacio de nombres para la aplicación:

    kubectl create namespace demo
    
  2. Aplica la etiqueta de revisión asm-managed-rapid al espacio de nombres demo:

    kubectl label namespace demo istio-injection- istio.io/rev=asm-managed-rapid --overwrite
    

    Esta etiqueta corresponde al canal de versiones administrado de Anthos Service Mesh correspondiente a la versión de Anthos Service Mesh.

    Puedes ignorar el mensaje "istio-injection not found" en el resultado. Esto significa que el espacio de nombres no tenía la etiqueta istio-injection, que debería aparecer en las nuevas instalaciones de Anthos Service Mesh o en implementaciones nuevas. Debido a que la inserción automática falla si un espacio de nombres tiene tanto la istio-injection como la etiqueta de revisión, todos los comandos kubectl label de la documentación de Anthos Service Mesh incluyen la acción de quitar la etiqueta istio-injection.

  3. Si también implementaste el plano de datos administrado por Google opcional, anota el espacio de nombres demo de la siguiente manera:

    kubectl annotate --overwrite namespace YOUR_NAMESPACE \
    mesh.cloud.google.com/proxy='{"managed":"true"}'
    

Descarga e implementa la muestra

Ahora que la inserción automática está habilitada en el espacio de nombres demo, cuando implementas los servicios de la aplicación BookInfo, los proxies de sidecar se insertan junto con cada servicio.

  1. Instala kpt si aún no lo hiciste:

    gcloud components install kpt
    
  2. Descarga la muestra mediante kpt:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/microservices-demo.git/release \
    online-boutique
    
  3. Implementa la muestra en el clúster:

    kubectl apply -n demo -f online-boutique
    
  4. Busca la dirección IP externa del servicio frontend-external:

    kubectl get service frontend-external -n demo
    
  5. Visita la aplicación en tu navegador para confirmar la instalación:

    http://EXTERNAL_IP/
    

En GKE, puedes explorar las características de observabilidad de Anthos Service Mesh en la consola de Google Cloud. Ten en cuenta que pueden pasar hasta 10 minutos hasta que gráfico de topología muestre los servicios de tu malla.

Cuando termines de explorar, quita la muestra de Online Boutique:

kubectl delete namespaces demo