Abilitazione di Ingress con Cloud Service Mesh

Questo argomento mostra come installare Cloud Service Mesh, che è preinstallato con un Ingress Gateway. Con Cloud Service Mesh, puoi configurare una risorsa Kubernetes Ingress per i tuoi deployment se hai bisogno di un controller Ingress. Questo argomento fornisce un esempio che mostra come configurare una risorsa Deployment e Ingress di esempio.

L'installazione di Cloud Service Mesh è composta da due parti principali:

  1. Installazione di una versione specifica del piano di controllo gestito dal cliente di Cloud Service Mesh e di Ingress Gateway.
  2. Etichettare gli spazi dei nomi con un'etichetta di revisione e eseguire nuovamente il deployment dei carichi di lavoro per iniettare un proxy sidecar.

Se devi utilizzare solo un oggetto Ingress con un controller Ingress, non devi inserire un proxy sidecar nei pod del tuo carico di lavoro. Tuttavia, se vuoi usufruire dei vantaggi della sicurezza offerti da Cloud Service Mesh e se vuoi utilizzare le funzionalità di routing del traffico, devi iniettare i proxy sidecar.

Prima di iniziare

Prima di iniziare a utilizzare GKE su AWS, assicurati di aver eseguito le seguenti attività:

  • Installa un servizio di gestione.
  • Crea un cluster di utenti.
  • Registra il tuo cluster con Connect seguendo i passaggi descritti in Connessione al cluster con Cloud Console.
  • Configura il cluster per utilizzare l'identità del workload con Google Cloud.
  • Se i tuoi cluster di utenti hanno accesso in uscita limitato a internet, consenti l'accesso ai seguenti domini del repository dei contenitori:

    • docker.io
    • quay.io
  • Dalla directory anthos-aws, utilizza anthos-gke per cambiare contesto e passare al cluster di utenti.

    cd anthos-aws
    env HTTPS_PROXY=http://localhost:8118 \
      anthos-gke aws clusters get-credentials CLUSTER_NAME
    Sostituisci CLUSTER_NAME con il nome del cluster di utenti.

Installazione di Anthos Service Mesh

Segui i passaggi descritti in Installare Cloud Service Mesh.

Creazione di un deployment di esempio

In questa sezione, installerai un'applicazione di esempio e creerai un endpoint Ingress per essa.

  1. Crea un deployment di hello-app e un ClusterIP per il deployment. Copia il seguente codice YAML in un file denominato 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. Applica il file YAML al tuo cluster con kubectl apply.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f hello-app.yaml
    
  3. Crea un Ingress Kubernetes per l'applicazione di esempio. Copia il seguente codice YAML in un file denominato 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 l'Ingress applicando la configurazione con kubectl apply.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f hello-app-ingress.yaml
    
  5. Controlla lo stato del tuo gateway con kubectl get svc.

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

    Il campo ADDRESS deve avere un nome di dominio ELB. Se il ADDRESS rimane pending, verifica l'etichettatura della VPC e della subnet.

  6. Puoi controllare l'URL del gateway di Ingress componendo l'host e la porta. Per ottenere l'URL del gateway, esegui i seguenti comandi:

    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
    

    L'ultimo comando stampa l'endpoint di Ingress.

  7. Se hai creato un Ingress pubblico, puoi visualizzare la pagina web predefinita di hello-app in curl visitando http://$INGRESS_URL/.

    curl $INGRESS_URL/
    

Pulizia

Rimuovi i componenti hello-app con kubectl delete.

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

Se vuoi rimuovere Cloud Service Mesh, consulta Disinstallare Cloud Service Mesh.

Passaggi successivi

Scopri di più su: