Am 29. Oktober wurde eine neue Version von Anthos-Cluster auf AWS (GKE in AWS) veröffentlicht. Weitere Informationen siehe Versionshinweise.

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 Hauptabschnitten:

  1. Eine bestimmte Version der vom Kunden verwalteten Steuerungsebene und des Ingress-Gateways von Anthos Service Mesh installieren
  2. Beschriften Sie Ihre Namespaces mit einem Revisionslabel und stellen Sie Ihre Arbeitslasten noch einmal bereit, um einen Sidecar-Proxy einzufügen.

Wenn Sie nur Ingress-Funktionen mit einem Ingress-Controller benötigen, müssen Sie keinen Sidecar-Proxy in Ihre Arbeitslast-Pods einfügen. Wenn Sie jedoch die Sicherheitsvorteile das Anthos Service Mesh bietet haben wollen und wenn Sie auch dieTraffic-Routing-Funktionen verwenden möchten, müssen Sie die Sidecar-Proxys einfügen.

Hinweis

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

  • Der Verwaltungsdienst muss installiert sein.
  • Nutzercluster erstellen
  • 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

    Wenn Sie keinen ausgehenden Zugriff auf diese Domains zulassen möchten, lesen Sie die Informationen unter Ohne Prometheus und Kiali installieren.

  • Verwenden Sie kubectl config use context, um den Kontext zu Ihrem Nutzercluster zu wechseln:

    kubectl config use-context CLUSTER_NAME

Anthos Service Mesh installieren

Folgen Sie der Installationsanleitung für die Version von Anthos Service Mesh, die Sie installieren möchten:

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: