Weiteren Cloud IAP-Connector in einem vorhandenen GKE-Cluster bereitstellen

Auf dieser Seite wird der Prozess zum Bereitstellen eines zusätzlichen lokalen IAP-Connectors in einem vorhandenen GKE-Cluster (Google Kubernetes Engine) in einer Produktionsumgebung beschrieben. Sie sollten mit Tools wie Google Cloud SDK, kubectl und Helm vertraut sein.

Eine kurze Übersicht über die Bereitstellung lokaler IAP-Connectoren finden Sie unter IAP für lokale Anwendungen aktivieren.

Hinweis

Bereiten Sie sich auf die Bereitstellung vor; sie benötigen:

  • Einen bestehenden GKE-Cluster
    • Der Cluster muss auf die Nutzung von VPC-nativ (IP-Aliasse) eingerichtet sein. Die VPC, in der er sich befindet, muss über eine Route in der VPC (NAT-Gateway oder anderweitig) Internetzugriff haben.
    • Damit GKE-Cluster mehrere IAP-Connector-Instanzen aus einem einzelnen Cluster bedienen können, müssen sie zusammen mit den die einzelne Anwendungen bedienenden Pods für die automatische Skalierung konfiguriert sein.
  • Eine Firewallregel, die Traffic vom GKE-Cluster (Knoten/Pod) zu einer Back-End-/lokalen Instanz zulässt
  • Ein von Google verwaltetes SSL-Zertifikat und eine statische, externe IP-Adresse
  • Helm (Version 2.0.0 oder höher) auf Ihrem lokalen Clientcomputer
  • Auf dem Subnetz konfiguriertes Cloud NAT, um Ambassador-Images abzurufen
  • Die Anzahl der globalen Load-Balancer wurde erhöht, um die für Zielpools und -proxys angegebenen TLS-Zertifikatslimits einzuhalten.

Mit Helm konfigurieren und bereitstellen

  1. Zuerst klonen Sie dieses GitHub-Repository.

  2. Konfigurieren Sie das Helm-Diagramm values_example.yaml im Verzeichnis iap-connector/terraform-and-helm/iap-connector/helm/values, in das Sie das Repository geklont haben.

    In diesem Diagramm wird gezeigt, wie zwei Anwendungen, die einen globalen Load-Balancer teilen, über zwei Ambassador-Proxys auf dem Cluster bereitgestellt werden. Dem Proxy sind zwei Zertifikate zugeordnet, eins für jede Anwendung. Diese Beispieldatei kann so angepasst werden, dass sie bis zum Limit des Ingress-Proxys unterstützt wird.

    Speichern Sie die YAML-Datei nach der Konfiguration als values.yaml.

  3. Initialisieren Sie Helm.

    helm init
    
  4. Gewähren Sie Helm die Berechtigung für die Installation im GKE-Cluster.

    kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin
      --user system:serviceaccount:kube-system:default
    
  5. Installieren Sie das Helm-Diagramm, um den globalen Load-Balancer, den Ingress-Dienst in GKE und die Back-End-Dienste, wie in der YAML-Datei definiert, zu erstellen.

    helm install --name my-release ./iap-connector -f values.yaml
    

HTTP-Back-End-Anwendung konfigurieren

Ambassador wird standardmäßig mit HTTPS zur Zielressource bereitgestellt, aber vielleicht bevorzugen Sie ein HTTP-Back-End. So ändern Sie die HTTP-Bereitstellung:

  1. Suchen Sie den Dienst, den Sie bearbeiten möchten.

    kubectl get services
    
  2. Bearbeiten Sie den Dienst, wozu Sie den Dienstnamen aus dem vorherigen Befehl kopieren.

    kubectl edit service <serviceName>
    
  3. Suchen Sie die mit service beginnende Zeile. Ändern Sie das Protokoll von https in http und die Portnummer in 80.

    service:http://example.service.internal:80
    
  4. Entfernen Sie die Zeile, in der die TLS festgelegt wird.

    tls:true