Cloud SQL Proxy in GKE - Ein vollständiger Leitfaden
Cloud SQL Proxy in GKE: Eine umfassende Anleitung
Der Cloud SQL Proxy ist ein essenzieller Dienst, der eine gesicherte Kommunikationsbrücke zwischen Ihren Workloads in Google Kubernetes Engine (GKE) und Ihren Cloud SQL-Datenbanken herstellt. Er offeriert dabei eine Reihe von Vorteilen:
- Unkomplizierte Konnektivität: Der Proxy gestattet es GKE-Pods, über eine lokale TCP-Verbindung mit Cloud SQL-Datenbanken zu interagieren, ohne dass an den Pods oder Datenbanken tiefgreifende Anpassungen notwendig sind.
- Erhöhte Sicherheit: Er fungiert als sicheres Gateway, das den Datenverkehr zwischen Pods und Datenbanken verschlüsselt und den Zugriff auf autorisierte Pods beschränkt, was eine zusätzliche Sicherheitsebene darstellt.
- Automatische Skalierung: Der Proxy passt sich dynamisch an die wachsende Zahl von Pods an, die auf Cloud SQL-Datenbanken zugreifen.
- Leichte Verwaltung: Die Administration des Proxys ist über die Google Cloud Console oder durch
kubectl-Befehle realisierbar, was die Einsatzbereitschaft und Wartung vereinfacht.
Einrichtung des Cloud SQL Proxys
Vorbedingungen
Für die Installation und Nutzung des Cloud SQL Proxys werden folgende Voraussetzungen benötigt:
- Ein funktionsfähiger GKE-Cluster
- Eine aktive Cloud SQL-Datenbank
- Die
Cloud SQL Proxy-Erweiterung für GKE
Installationsschritte
Die Einrichtung des Cloud SQL Proxys erfolgt in folgenden Schritten:
- Erweiterung einspielen: Integrieren Sie die
Cloud SQL Proxy-Erweiterung via Google Cloud Console oderkubectl. - Proxy aktivieren: Stellen Sie den Proxy in Ihrem GKE-Cluster bereit.
- Geheimnis erstellen: Legen Sie ein Geheimnis an, welches die Zugangsdaten für die Cloud SQL-Datenbank enthält.
- Datenbankzugriff gewähren: Autorisieren Sie das Proxy-Dienstkonto für den Zugriff auf die Cloud SQL-Datenbank.
kubectl apply -f https://gke-deploy.cloud.google.com/release/latest/crds.yaml
kubectl apply -f https://gke-deploy.cloud.google.com/release/latest/kube-deploy.yaml
kubectl apply -f <(cat <<EOF
apiVersion: "sql.cnrm.cloud.google.com/v1beta1"
kind: SQLProxy
metadata:
name: <proxy-name>
namespace: <namespace>
spec:
mysql:
connectionPool: 50
secret:
name: <secret-name>
EOF
)
kubectl create secret generic <secret-name> --namespace <namespace> \
--from-literal=username=<db-user> \
--from-literal=password=<db-password>
gcloud sql databases patch <db-name> \
--host=<db-host> \
--user=<db-user> \
--database=<db-name> \
--add-authorized-network=10.0.0.0/8
Konfigurationsoptionen
Der Proxy ist konfigurierbar und bietet folgende Optionen:
- Verbindungspool: Definiert die maximale Anzahl gleichzeitiger Verbindungen pro Datenbankverbindung.
- Geheimnis: Referenziert das Kubernetes Secret, das die Anmeldeinformationen für die Cloud SQL-Datenbank beinhaltet.
- Anmeldeinformationen: Legt fest, welche Credentials verwendet werden, um die Verbindung zur Datenbank herzustellen.
- IP-Whitelist: Definiert eine Liste von IP-Adressen, die auf den Proxy zugreifen dürfen.
Verwendung des Proxys
Um den Cloud SQL Proxy zu nutzen, erstellen Sie einen Pod, der die Cloud SQL Proxy-Erweiterung verwendet:
apiVersion: apps/v1
kind: Deployment
metadata:
name: <deployment-name>
namespace: <namespace>
spec:
replicas: 1
selector:
matchLabels:
app: <app-name>
template:
metadata:
labels:
app: <app-name>
spec:
containers:
- name: <container-name>
image: <image-name>
args: ["<db-connection-string>"]
env:
- name: PORT
value: "8080"
- name: DB_USER
value: <db-user>
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: <secret-name>
key: password
readinessProbe:
exec:
command: ["sh", "-c", "nc -vz 127.0.0.1 $PORT"]
initialDelaySeconds: 1
periodSeconds: 10
startupProbe:
exec:
command: ["sh", "-c", "nc -vz 127.0.0.1 $PORT"]
periodSeconds: 1
extensions:
- name: cloudsqlproxy
definition: sql.cnrm.cloud.google.com/v1beta1~SQLProxy
config:
secret: <proxy-secret-name>
Vorteile des Einsatzes
Der Einsatz des Cloud SQL Proxys in GKE bringt folgende Vorteile:
- Vereinfachte Konnektivität: Ermöglicht eine einfache Verbindung zwischen GKE-Pods und Cloud SQL-Datenbanken ohne zusätzliche Konfigurationen.
- Verbesserte Sicherheit: Bietet zusätzlichen Schutz durch Verschlüsselung und Zugriffsbeschränkungen.
- Automatische Skalierbarkeit: Passt sich automatisch an steigende Anforderungen an.
- Einfache Verwaltung: Ermöglicht eine unkomplizierte Bereitstellung und Verwaltung über die Google Cloud Console oder
kubectl.
Fazit
Der Cloud SQL Proxy erweist sich als wertvolles Werkzeug, das eine sichere und skalierbare Verbindung zwischen GKE-Workloads und Cloud SQL-Datenbanken ermöglicht. Er bietet eine effiziente und verlässliche Methode, um Cloud-Datenbanken in einer Kubernetes-Umgebung zu verwalten, indem er einen einfachen und sicheren Zugang für Pods zu den Datenbanken bereitstellt.
Häufig gestellte Fragen
- Was genau ist der Cloud SQL Proxy?
Der Cloud SQL Proxy ist ein Dienst, der sichere Verbindungen zwischen GKE-Workloads und Cloud SQL-Datenbanken ermöglicht. - Welche Vorteile bietet der Cloud SQL Proxy?
Er vereinfacht Verbindungen, erhöht die Sicherheit, ist skalierbar und erleichtert die Verwaltung. - Wie wird der Cloud SQL Proxy installiert?
Installieren Sie dieCloud SQL Proxy-Erweiterung für GKE und deployen Sie den Proxy in Ihrem Cluster. - Wie konfiguriert man den Cloud SQL Proxy?
Die Konfiguration erfolgt über den Verbindungspool, ein Geheimnis, die Anmeldeinformationen und eine IP-Whitelist. - Wie verwendet man den Cloud SQL Proxy?
Erstellen Sie einen Pod, der dieCloud SQL Proxy-Erweiterung nutzt, um eine Datenbankverbindung herzustellen. - Welche Sicherheitsvorkehrungen werden durch den Cloud SQL Proxy getroffen?
Der Datenverkehr wird verschlüsselt und der Zugriff auf autorisierte Pods beschränkt. - Ist der Cloud SQL Proxy skalierbar?
Ja, er passt sich automatisch an die steigende Zahl von Pods an, die auf die Datenbanken zugreifen. - Wie wird der Cloud SQL Proxy verwaltet?
Die Verwaltung erfolgt über die Google Cloud Console oder überkubectl-Befehle.