Habilita la entrada con Anthos Service Mesh

En este tema, se muestra cómo instalar Anthos Service Mesh, que viene preinstalada con una puerta de enlace de Ingress. Con Anthos Service Mesh, puedes configurar un recurso de Ingress de Kubernetes para tus Deployments si necesitas un controlador de Ingress. En este tema, se proporciona un ejemplo en el que se muestra cómo configurar un recurso de muestra de Ingress y Deployment.

La instalación de Anthos Service Mesh consta de dos partes principales:

  1. Instalar una versión específica del plano de control administrado por el cliente de Anthos Service Mesh y de la puerta de enlace de entrada.
  2. Etiquetar los espacios de nombres con una etiqueta de revisión y volver a implementar las cargas de trabajo para incorporar un proxy de sidecar.

Si solo necesitas usar un objeto Ingress mediante un controlador de Ingress, no tienes que incorporar un proxy de sidecar en los Pods de la carga de trabajo. Pero si deseas los beneficios de seguridad que proporciona Anthos Service Mesh y, si quieres usar las capacidades del enrutamiento de tráfico debes insertar los proxies de sidecar.

Antes de comenzar

Antes de comenzar a usar GKE on AWS, completa las siguientes tareas:

  • Instalar un servicio de administración
  • Crear un clúster de usuario
  • Para registrar tu clúster con Connect, sigue los pasos en Conéctate a tu clúster con la consola de Cloud.
  • Configura tu clúster para usar Workload Identity con Google Cloud.
  • Si tus clústeres de usuario tienen acceso de salida restringido a Internet, permite el acceso a los siguientes dominios del repositorio de contenedores:

    • docker.io
    • quay.io
  • Desde tu directorio de anthos-aws, usa anthos-gke para cambiar el contexto a tu clúster de usuario.

    cd anthos-aws
    env HTTPS_PROXY=http://localhost:8118 \
      anthos-gke aws clusters get-credentials CLUSTER_NAME
    Reemplaza CLUSTER_NAME por el nombre de tu clúster de usuario.

Instala Anthos Service Mesh

Sigue los pasos en Instala Anthos Service Mesh.

Crea un Deployment de ejemplo

En esta sección, instalarás una aplicación de muestra y crearás un extremo de Ingress para ella.

  1. Crea un Deployment de hello-app y un ClusterIP para la implementación. Copia el siguiente YAML en un archivo llamado hello-app.yaml.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: hello-app
      name: hello-app
    spec:
      selector:
        matchLabels:
          app: hello-app
      replicas: 3
      template:
        metadata:
          labels:
            app: hello-app
        spec:
          containers:
          - name: hello
            image: "gcr.io/google-samples/hello-app:2.0"
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: hello-app
      name: hello-app
    spec:
      type: ClusterIP
      selector:
        app: hello-app
      ports:
      - protocol: TCP
        port: 8080
        targetPort: 8080
    
  2. Aplica el YAML a tu clúster con kubectl apply.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f hello-app.yaml
    
  3. Crea un Ingress de Kubernetes para la aplicación de muestra. Copia el siguiente YAML en un archivo llamado hello-app-ingress.yaml.

    apiVersion: networking.k8s.io/v1beta1
    kind: Ingress
    metadata:
      annotations:
        kubernetes.io/ingress.class: istio
      labels:
        app: hello-app
      name: hello-app
    spec:
      rules:
      - host:
        http:
          paths:
          - backend:
              serviceName: hello-app
              servicePort: 8080
    
  4. Crea el Ingress. Para ello, aplica la configuración con kubectl apply.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f hello-app-ingress.yaml
    
  5. Verifica el estado de la puerta de enlace con kubectl get svc.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get ingress hello-app
    

    El campo ADDRESS debe tener un nombre de dominio de ELB. Si ADDRESS sigue siendo pending, confirma el etiquetado de VPC y subred.

  6. Para verificar la URL de la puerta de enlace de Ingress, redacta el host y el puerto. Para obtener la URL de tu puerta de enlace, ejecuta los siguientes comandos:

    export INGRESS_URL=$(env HTTPS_PROXY=http://localhost:8118 \
    kubectl get ingress hello-app -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
    echo "Your hello-app Ingress URL is: http://"$INGRESS_URL
    

    Con el último comando, se imprime el extremo de tu Ingress.

  7. Si creaste un Ingress público, puedes visitar http://$INGRESS_URL/ para ver la página web predeterminada de hello-app en curl.

    curl $INGRESS_URL/
    

Realiza una limpieza

Quita los componentes hello-app con kubectl delete.

env HTTPS_PROXY=http://localhost:8118 \
  kubectl delete -f hello-app.yaml &&\
  kubectl delete -f hello-app-ingress.yaml

Si deseas quitar Anthos Service Mesh, consulta Desinstala Anthos Service Mesh.

Próximos pasos

Conoce más sobre: