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.