Blog
Bereitstellung in einem privaten GKE-Cluster mit Connect Gateway

Der Einsatz von privaten GKE-Clustern war aufgrund von Netzwerkproblemen immer mühsam. Zum Glück gehören diese Zeiten der Vergangenheit an, denn Connect Gateway überwindet diese Konnektivitätsprobleme.
Der Schmerz der privaten GKE-Cluster
Jeder möchte eine sichere Umgebung. Daher verbirgt jeder den Kubernetes-API-Server vor dem öffentlichen Internet - ein so genannter privater Cluster. Ohne eine öffentliche IP-Adresse ist ein anderer Weg erforderlich, um Kubernetes-Workloads bereitzustellen. Dieser Weg wird in der Regel mit einem Bastion-Host, durch die Konfiguration einer hybriden Konnektivität oder durch die Ausführung von einsatzspezifischen Arbeitslasten (die als Proxys fungieren) implementiert. Bei diesen Implementierungen müssen Sie sich mit dem richtigen Server und/oder Netzwerk verbinden, bevor Sie mit Ihrem Kubernetes-Cluster interagieren können. Ein zusätzlicher Schritt, der Entwickler und/oder Techniker häufig verwirrt, weil sie die gesamte Netzwerktopologie nicht kennen - und auch nicht kennen wollen -, insbesondere wenn sie mit mehreren Kubernetes-Clustern arbeiten.
Ein universeller Anschluss für GKE-Cluster
Das Connect Gateway verwendet Flotten, um Ihnen eine einfache, konsistente und sichere Verbindung und Interaktion mit Kubernetes-Clustern zu ermöglichen. Das Connect Gateway nutzt die Feinheiten der Flottenmitgliedschaft, um sich für Sie mit dem Kubernetes-Cluster zu verbinden. Das Einzige, was Sie tun müssen, ist, eine Zugangsberechtigung für ein bestimmtes Flottenmitglied anzufordern und Ihren Befehl auszuführen.
gcloud container fleet memberships get-credentials member-cluster
kubectl get pods
Beachten Sie die Einschränkungen von Connect Gateway. Die Befehle
exec,proxy,attachundport-forwardwerden nicht unterstützt.
Terraform Private GKE-Cluster-Bereitstellung
Es ist zwar bequem, lokal mit einem Cluster zu interagieren. Die wahre Stärke liegt in der Automatisierung. Im folgenden Beispiel wird ein Ubuntu-Pod mithilfe von Terraform in einem privaten GKE-Cluster bereitgestellt.
Das vollständige Beispiel finden Sie auf GitHub.
resource "google_gke_hub_membership" "example" {
membership_id = "example"
endpoint {
gke_cluster {
resource_link = google_container_cluster.example.id
}
}
authority {
issuer = "https://container.googleapis.com/v1/${google_container_cluster.example.id}"
}
}
provider "kubernetes" {
host = "https://connectgateway.googleapis.com/v1/projects/${data.google_project.project.number}/locations/global/gkeMemberships/${google_gke_hub_membership.example.membership_id}"
# Assumes a Kubernetes cluster version of 1.26+
exec {
api_version = "client.authentication.k8s.io/v1beta1"
command = "gke-gcloud-auth-plugin"
}
}
resource "kubernetes_pod" "ubuntu" {
metadata {
namespace = "default"
name = "ubuntu"
}
spec {
container {
name = "ubuntu"
image = "ubuntu:latest"
}
}
}
Beachten Sie, dass die einzige Konfigurationsänderung beim Kubernetes-Provider stattfindet. Anstatt auf die interne Kubernetes-API-Adresse zu verweisen, wird die Connect Gateway API verwendet.
Fazit
Die Verbindung zu Ihrem GKE-Cluster ist nicht länger ein Problem. Anstatt selbst den richtigen Bastion-Host, Proxy oder die richtige Netzwerkkonfiguration zu finden, lassen Sie sich von Connect Gateway verbinden.
Bild von Jiří Rotrekl aus Pixabay
Verfasst von
Laurens Knoll
As a cloud consultant I enjoy improving what your company does best. I enable your business using cloud technology and enable your engineers by applying software engineering practices to your infrastructure domain.
Unsere Ideen
Weitere Blogs
Contact



