Knative-Bereitstellung einrichten

Hier erfahren Sie, wie Sie die Bereitstellung von Knative einrichten und konfigurieren.

Hinweise

Auf Ihrem GKE-Cluster muss Knative für die Bereitstellung installiert sein. Weitere Informationen zu den Voraussetzungen für GKE-Cluster und zum Installieren von Knative finden Sie in der Installationsanleitung.

Authentifizierung mit Workload Identity einrichten

Mit Workload Identity können Sie Ihre Knative-Bereitstellungsdienste bei Google Cloud APIs und Google Cloud-Diensten authentifizieren. Sie müssen Workload Identity einrichten, bevor Sie Dienste in Ihrem Cluster bereitstellen, da sonst jeder Dienst, der vor der Aktivierung von Workload Identity in Ihrem Cluster vorhanden ist, migriert werden muss. Weitere Informationen zur Verwendung von Workload Identity

Messwerte mit Workload Identity aktivieren

Wenn Sie Messwerte wie die Anzahl der Anfragen oder die Anfragelatenz an Google Cloud Observability aktivieren möchten, müssen Sie die Schreibberechtigungen für Cloud Monitoring manuell festlegen. Weitere Informationen finden Sie unter Messwerte mit Workload Identity aktivieren.

HTTPS und benutzerdefinierte Domains konfigurieren

Informationen zum Aktivieren von HTTPS und zum Festlegen einer benutzerdefinierten Domain finden Sie auf den folgenden Seiten:

Anthos Service Mesh einrichten

Informationen zum Konfigurieren von Anthos Service Mesh-Optionen für die Knative-Bereitstellung finden Sie unter Optionen für die clusterinterne Steuerungsebene, einschließlich der Informationen zum Einrichten eines privaten, internen Netzwerks.

Privates internes Netzwerk einrichten

Die Bereitstellung von Diensten in einem internen Netzwerk ist nützlich für Unternehmen, die ihren Mitarbeitern interne Anwendungen zur Verfügung stellen, und für Dienste, die von Clients verwendet werden, die außerhalb des Knative-Bereitstellungsclusters ausgeführt werden. Mit dieser Konfiguration können andere Ressourcen in Ihrem Netzwerk über eine private, interne IP-Adresse (RFC 1918), die nicht öffentlich zugänglich ist, mit dem Dienst kommunizieren.

Um Ihr internes Netzwerk erstellen, konfigurieren Sie Anthos Service Mesh so, dass internes TCP/UDP-Load-Balancing anstelle eines öffentlichen, externen Netzwerk-Load-Balancers verwendet wird. Anschließend können Sie die Knative-Bereitstellungsdienste über eine interne IP-Adresse in Ihrem VPC-Netzwerk bereitstellen.

Hinweise

So richten Sie den internen Load-Balancer ein:

  1. Aktivieren Sie das Feature des internen Load-Balancers in Anthos Service Mesh.

    Der interne Load-Balancer ist ein optionales Feature, das Sie bei der Installation von Anthos Service Mesh oder durch Aktualisierung Ihrer vorhandenen Installation konfigurieren können.

    Führen Sie die Schritte unter Optionale Features auf der Steuerungsebene im Cluster aktivieren aus und fügen Sie die Skriptoption --option internal-load-balancer ein.

    Wenn Sie die Option --option internal-load-balancer angeben, ruft das Skript automatisch die benutzerdefinierte Ressource Internen Load-Balancer aktivieren von GitHub ab. Wenn Sie die benutzerdefinierte Ressource ändern möchten, folgen Sie stattdessen der Anleitung zur Verwendung der Option --custom_overlay.

  2. Führen Sie den folgenden Befehl aus, um Updates für Ihren GKE-Cluster zu beobachten:

    kubectl -n INGRESS_NAMESPACE get svc istio-ingressgateway --watch
    

    Ersetzen Sie INGRESS_NAMESPACE durch den Namespace Ihres Anthos Service Mesh-Ingress-Dienstes. Geben Sie istio-system an, wenn Sie Anthos Service Mesh mit der Standardkonfiguration installiert haben.

    1. Beachten Sie die Annotation cloud.google.com/load-balancer-type: Internal.
    2. Warten Sie, bis der Wert von IP im Ingress-Load-Balancer zu einer privaten IP-Adresse wechselt.
    3. Drücken Sie Ctrl+C, um die Updates zu beenden, sobald im Feld IP eine private IP-Adresse angezeigt wird.
  3. Für private Cluster in Google Cloud müssen Sie Ports öffnen. Weitere Informationen finden Sie in der Anthos Service Mesh-Dokumentation unter Ports auf einem privaten Cluster öffnen.

So prüfen Sie die interne Verbindung nach Ihren Änderungen:

  1. Stellen Sie einen Dienst namens sample für die Bereitstellung von Knative im Namespace default bereit:

    gcloud run deploy sample \
    --image gcr.io/knative-samples/helloworld \
    --namespace default
    --platform gke
    
  2. Erstellen Sie eine Compute Engine-VM in derselben Zone, in der sich der GKE-Cluster befindet:

    VM=cloudrun-gke-ilb-tutorial-vm
    
    gcloud compute instances create $VM
    
  3. Speichern Sie die private IP-Adresse des Istio-Ingress-Gateways in einer Umgebungsvariablen namens EXTERNAL_IP und einer Datei namens external-ip.txt:

    export EXTERNAL_IP=$(kubectl -n INGRESS_NAMESPACE get svc istio-ingressgateway \
        -o jsonpath='{.status.loadBalancer.ingress[0].ip}' | tee external-ip.txt)
    

    Ersetzen Sie INGRESS_NAMESPACE durch den Namespace Ihres Anthos Service Mesh-Ingress-Dienstes. Geben Sie istio-system an, wenn Sie Anthos Service Mesh mit der Standardkonfiguration installiert haben.

  4. Kopieren Sie die Datei mit der IP-Adresse in die VM:

    gcloud compute scp external-ip.txt $VM:~
    
  5. Stellen Sie eine SSH-Verbindung zur VM her:

    gcloud compute ssh $VM
    
  6. Testen Sie in der SSH-Sitzung den Beispieldienst:

    curl -s -w'\n' -H Host:sample.default.nip.io $(cat external-ip.txt)
    

    Die Ausgabe sieht so aus:

    Hello World!
    
  7. Verlassen Sie die SSH-Sitzung:

    exit
    

Mehrmandantenfähige Umgebung einrichten

Bei mehrmandantenfähigen Anwendungsfällen müssen Sie die Bereitstellungsdienste von Knative in einem Google Kubernetes Engine-Cluster verwalten und bereitstellen, der sich außerhalb Ihres aktuellen Projekts befindet. Weitere Informationen zur GKE-Mehrmandantenfähigkeit finden Sie unter Cluster-Mehrmandantenfähigkeit.

Informationen zum Konfigurieren der Mehrmandantenfähigkeit für die Bereitstellung mit Knative finden Sie unter Projektübergreifende Mehrmandantenfähigkeit.

Nächste Schritte