Habilitación de Ingress con Cloud Service Mesh

Este tema muestra cómo instalar Cloud Service Mesh, que viene preinstalado con una puerta de enlace de Ingress . Con Cloud Service Mesh, puede configurar un recurso de Ingress de Kubernetes para sus implementaciones si necesita un controlador de Ingress . Este tema proporciona un ejemplo que muestra cómo configurar una implementación y un recurso de Ingress de muestra.

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

  1. Instalación de una versión específica del plano de control administrado por el cliente de Cloud Service Mesh y de Ingress Gateway.
  2. Etiquetar sus espacios de nombres con una etiqueta de revisión y volver a implementar sus cargas de trabajo para inyectar un proxy sidecar .

Si solo necesita usar un objeto de Ingress mediante un controlador de Ingress, no necesita inyectar un proxy sidecar en sus pods de carga de trabajo. Sin embargo, si desea aprovechar las ventajas de seguridad que ofrece Cloud Service Mesh y las capacidades de enrutamiento de tráfico , debe inyectar los proxies sidecar.

Antes de empezar

Antes de comenzar a usar GKE en AWS, asegúrese de haber realizado las siguientes tareas:

  • Instalar un servicio de gestión .
  • Crear un clúster de usuarios .
  • Registre su clúster con Connect siguiendo los pasos que se indican en Cómo conectarse a su clúster con la consola Cloud .
  • Configure su clúster para usar la identidad de carga de trabajo con Google Cloud .
  • Si sus clústeres de usuarios tienen acceso saliente restringido a Internet, permita el acceso a los siguientes dominios de repositorio de contenedores:

    • docker.io
    • quay.io
  • Desde su directorio anthos-aws , use anthos-gke para cambiar el contexto a su clúster de usuarios.

    cd anthos-aws
    env HTTPS_PROXY=http://localhost:8118 \
      anthos-gke aws clusters get-credentials CLUSTER_NAME
    Reemplace CLUSTER_NAME con el nombre de su clúster de usuarios.

Instalación de Anthos Service Mesh

Siga los pasos en Instalar Cloud Service Mesh .

Creación de un ejemplo de implementación

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

  1. Cree una implementación de hello-app y una IP de clúster para la implementación. Copie 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. Aplique el YAML a su clúster con kubectl apply .

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f hello-app.yaml
    
  3. Cree un Ingress de Kubernetes para la aplicación de ejemplo. Copie 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. Cree el Ingress aplicando la configuración con kubectl apply .

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

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

    El campo ADDRESS debe contener un nombre de dominio ELB. Si la ADDRESS permanece pending , confirme el etiquetado de su VPC y subred.

  6. Puede consultar la URL de la puerta de enlace de Ingress escribiendo el host y el puerto. Para obtener la URL de la puerta de enlace, ejecute 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
    

    El último comando imprime el punto final de su Ingress.

  7. Si creó un Ingress público, puede ver la página web predeterminada hello-app en curl visitando http://$INGRESS_URL/ .

    curl $INGRESS_URL/
    

Limpiando

Elimina 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 desea eliminar Cloud Service Mesh, consulte Desinstalar Cloud Service Mesh .

¿Qué sigue?

Obtenga más información sobre: