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
Zuerst klonen Sie dieses GitHub-Repository.
Konfigurieren Sie das Helm-Diagramm
values_example.yaml
im Verzeichnisiap-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
.Initialisieren Sie Helm.
helm init
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
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:
Suchen Sie den Dienst, den Sie bearbeiten möchten.
kubectl get services
Bearbeiten Sie den Dienst, wozu Sie den Dienstnamen aus dem vorherigen Befehl kopieren.
kubectl edit service <serviceName>
Suchen Sie die mit
service
beginnende Zeile. Ändern Sie das Protokoll vonhttps
inhttp
und die Portnummer in80
.service:http://example.service.internal:80
Entfernen Sie die Zeile, in der die TLS festgelegt wird.
tls:true