Ingress mit Anthos Service Mesh aktivieren

In diesem Thema erfahren Sie, wie Sie Anthos Service Mesh installieren, das in einem Ingress-Gateway vorinstalliert ist. Mit Anthos Service Mesh können Sie eine Kubernetes-Ingress-Ressource für Ihre Deployments konfigurieren, wenn Sie einen Ingress-Controller benötigen. Dieses Thema enthält ein Beispiel, das zeigt, wie Sie eine Beispiel-Deployment-Ressource und eine Beispiel-Ingress-Ressource konfigurieren.

Die Installation von Anthos Service Mesh besteht aus zwei Hauptteilen:

  1. Bestimmte Version der vom Kunden verwalteten Steuerungsebene von Anthos Service Mesh und Ingress-Gateway installieren.
  2. Labels mit Namespaces mit einem Überarbeitungslabel versehen und Ihre Arbeitslasten noch einmal bereitstellen, um einen Sidecar-Proxy einzufügen.

Wenn Sie nur ein Ingress-Objekt mit einem Ingress-Controller verwenden müssen, müssen Sie keinen Sidecar-Proxy in Ihre Arbeitslast-Pods einfügen. Wenn Sie jedoch die Sicherheitsvorteile von Anthos Service Mesh und die Möglichkeiten des Traffic-Routings nutzen wollen, müssen Sie die Sidecar-Proxys einbinden.

Hinweis

Bevor Sie Anthos-Cluster auf AWS verwenden, führen Sie die folgenden Aufgaben aus:

  • Der Verwaltungsdienst muss installiert sein.
  • Nutzercluster erstellen
  • Registrieren Sie Ihren Cluster bei Connect. Folgen Sie dazu den Schritten unter Verbindung mit dem Cluster über die Cloud Console herstellen.
  • Konfigurieren Sie Ihren Cluster für die Verwendung von Workload Identity mit Google Cloud.
  • Wenn Ihre Nutzercluster den ausgehenden Zugriff auf das Internet beschränkt haben, lassen Sie den Zugriff auf die folgenden Container-Repository-Domains zu:

    • docker.io
    • quay.io
  • Verwenden Sie im Verzeichnis anthos-aws anthos-gke, um den Kontext zu Ihrem Nutzercluster zu wechseln.

    cd anthos-aws
    env HTTPS_PROXY=http://localhost:8118 \
      anthos-gke aws clusters get-credentials CLUSTER_NAME
    Ersetzen Sie CLUSTER_NAME durch den Nutzerclusternamen.

Anthos Service Mesh installieren

Folgen Sie der Anleitung unter Anthos Service Mesh installieren.

Beispiel-Deployment erstellen

In diesem Abschnitt installieren Sie eine Beispielanwendung und erstellen einen Ingress-Endpunkt dafür.

  1. Erstellen Sie ein Deployment von hello-app und eine ClusterIP für das Deployment. Kopieren Sie das folgende YAML-Manifest in eine Datei mit dem Namen 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. Wenden Sie die YAML mit kubectl apply auf Ihren Cluster an.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f hello-app.yaml
    
  3. Erstellen Sie ein Kubernetes Ingress für die Beispielanwendung. Kopieren Sie das folgende YAML-Manifest in eine Datei mit dem Namen 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. Erstellen Sie das Ingress, indem Sie die Konfiguration mit kubectl apply anwenden.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f hello-app-ingress.yaml
    
  5. Prüfen Sie den Status Ihres Gateways mit kubectl get svc.

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

    Das Feld ADDRESS sollte einen ELB-Domainnamen haben. Wenn ADDRESS weiterhin pending ist, prüfen Sie das VPC- und Subnetz-Labeling.

  6. Sie können die Ingress-Gateway-URL prüfen, indem Sie den Host und den Port zusammenstellen. Führen Sie die folgenden Befehle aus, um Ihre Gateway-URL abzurufen:

    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
    

    Mit dem letzten Endpunkt wird der Endpunkt des Ingress ausgegeben.

  7. Wenn Sie einen öffentlichen Ingress erstellt haben, können Sie die hello-app Standardwebseite in curl unter http://$INGRESS_URL/ aufrufen.

    curl $INGRESS_URL/
    

Bereinigen

Sie entfernen die hello-app-Komponenten mit kubectl delete.

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

Informationen zum Entfernen von Anthos Service Mesh finden Sie unter Anthos Service Mesh deinstallieren.

Weitere Informationen

Mehr zu folgenden Themen: