Blog
So stellen Sie mit dem Identity Aware Proxy eine Verbindung zu einem privaten GKE-Endpunkt her

Haben Sie jemals einen GKE-Cluster mit einem privaten Endpunkt erstellt? Und haben sich bei dem Versuch, Ihre CI/CD-Pipelines zum Laufen zu bringen, in einer Welt der Schmerzen wiedergefunden? In diesem Blog zeige ich Ihnen, wie Sie sich über den Identity Aware Proxy mit einem privaten GKE-Endpunkt verbinden können.
GKE CIS Security Control 6.6.4 erfordert Cluster mit deaktiviertem öffentlichem Zugriff. Wenn der öffentliche Zugang deaktiviert ist, kann Ihr CI/CD-System jedoch nicht mehr auf dem Cluster bereitstellen.
Die gebräuchlichsten Methoden zur Lösung dieses Problems sind die Verwendung privater Runner in der VPC oder das Tunneln über einen Bastion-Host. Aber das sind ziemlich große Änderungen an der Einrichtung. Wäre es nicht schön, wenn die GKE-Master-Endpunkte direkt über IAP zugänglich wären? Das folgende Diagramm zeigt eine Möglichkeit, dies zu tun:
In der Abbildung sehen Sie die folgenden Komponenten:
- Der GKE-Client-Proxy ist ein echter HTTPS-Proxy. Er fängt nur Proxy-Verbindungsanfragen für die GKE-Cluster-Endpunkte in Ihrem Projekt ab. Er fügt ein ID-Token als Proxy-Autorisierungs-Header zum Identity Aware Proxy hinzu.
- Der GKE-Server-Proxy leitet nur Anfragen an den GKE-Cluster-Endpunkt in Ihrem Projekt weiter.
- kubectl den GKE-Client-Proxy verwenden, indem Sie die proxy-url auf den GKE-Client-Proxy unter https://localhost:8080 verweisen und das Proxy-Zertifikat für https-Verbindungen akzeptieren.
Das ist alles, was es zu bieten hat. Es ist weitgehend transparent. Beachten Sie, dass das IAP keine Websockets unterstützt. Aus diesem Grund funktionieren Befehle wie kubectl exec nicht.
Installation
Wenn Sie eine Installation zum Spielen erstellen möchten, folgen Sie bitte den Anweisungen unter github.com/binxio/simple-iap-proxy. Obwohl dieses Setup auf GKE zugeschnitten ist, ist es einfach, die Software zu erweitern, um generisches Proxying in den Cluster über IAP zu unterstützen.
Fazit
Dank des leistungsstarken Golang-Ökosystems war es relativ einfach, eine Einrichtung für die Verbindung zu privaten GKE-Master-Endpunkten über den Identity Aware Proxy zu erstellen. Ich hoffe, dass Google in nicht allzu ferner Zukunft eine Standardlösung für dieses Problem bereitstellen wird.
Haftungsausschluss
Obwohl wir dieses Setup mit einer mittelgroßen GKE-Konfiguration getestet haben, sollte es als Beta-Software betrachtet werden. Wir sind für jedes Feedback dankbar.
Wenn Sie eine Verbindung zu einem privaten GKE-Cluster von Google Cloud Build herstellen möchten , lesen Sie diesen Blog. Image by PublicDomainPictures from Pixabay
Verfasst von

Mark van Holsteijn
Mark van Holsteijn is a senior software systems architect at Xebia Cloud-native solutions. He is passionate about removing waste in the software delivery process and keeping things clear and simple.
Unsere Ideen
Weitere Blogs
Contact



