Cloud SQL Proxy i GKE – En komplet guide

Cloud SQL Proxy i GKE – En komplet guide

Indledning

Cloud SQL Proxy er et hjælpemiddel, der gør det muligt for applikationer, der kører i Google Kubernetes Engine (GKE), at oprette sikker forbindelse til Cloud SQL-forekomster. Proxyen håndterer autentificering, kryptering og routing af databasetrafik, hvilket sikrer en sikker og pålidelig forbindelse mellem applikationer og databaser.

Denne omfattende guide giver dig en dybdegående forståelse af Cloud SQL Proxy, herunder dens fordele, installation, konfiguration og bedste praksis. Uanset om du er nybegynder med Cloud SQL eller en erfaren GKE-bruger, vil denne guide hjælpe dig med at få mest muligt ud af Cloud SQL Proxy.

Fordele ved at bruge Cloud SQL Proxy

Cloud SQL Proxy tilbyder en række fordele, der gør den til et værdifuldt værktøj for GKE-brugere:

* Sikker forbindelse: Proxyen håndterer autentificering ved hjælp af Google Cloud Platform-konti (GCP), hvilket eliminerer behovet for at gemme legitimationsoplysninger i applikationskoden. Trafikken er krypteret end-to-end, hvilket sikrer datasikkerhed under transmission.
* Automatisk håndtering af forbindelse: Proxyen håndterer automatisk genforbindelse og lastbalancering, hvilket sikrer høj tilgængelighed selv i tilfælde af netværksudfald eller databasevedligeholdelse.
* Let konfiguration: Proxyen kan nemt konfigureres via YAML-konfigurationsfiler eller Kubernetes-manifester, hvilket giver fleksibilitet og nem opsætning.
* Forbedret ydeevne: Proxyen kan cache almindelige forespørgsler, hvilket reducerer forsinkelser og forbedrer applikationens ydeevne.

Installation og konfiguration

Installation

Cloud SQL Proxy kan installeres på GKE-klynger ved hjælp af gcloud-kommandoen:


gcloud components install cloud-sql-proxy

Konfiguration

Proxyen konfigureres ved at oprette en Kubernetes-manifesterfil, der definerer proxyindstillingerne. Manifesterfilen skal indeholde følgende oplysninger:

* Cloud SQL-forkomstens tilslutningsstreng
* GCP-projektets ID
* Stien til nøglefilen (til autentificering)

Eksempel på manifesterfil:

yaml
apiVersion: v1
kind: Service
metadata:
name: cloud-sql-proxy
labels:
app: cloud-sql-proxy
spec:
ports:
- name: cloudsql-proxy
port: 3306
selector:
app: cloud-sql-proxy
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: cloud-sql-proxy
spec:
selector:
matchLabels:
app: cloud-sql-proxy
template:
metadata:
labels:
app: cloud-sql-proxy
spec:
containers:
- name: cloud-sql-proxy
image: gcr.io/cloudsql-docker/gce-proxy:1.39.0
args:
- --instances=<INSTANCE_CONNECTION_NAME>=tcp:0.0.0.0:3306
- --service-account-file=/var/secrets/google/service-account.json
- --credential-file=/var/secrets/google/service-account.json
volumeMounts:
- name: google-cloud-key
mountPath: /var/secrets/google
readOnly: true
volumes:
- name: google-cloud-key
secret:
secretName: google-cloud-key

Opsætning af hemmeligheder

For at gemme legitimationsoplysninger sikkert anbefales det at bruge Kubernetes-hemmeligheder. Opret to hemmeligheder: en til GCP-servicekontoen og en til nøglefilen.

Oprettelse af servicekontohemmelighed:


kubectl create secret generic google-cloud-key \
--from-file=service-account.json=</PATH_TO_SERVICE_ACCOUNT_JSON>

Oprettelse af nøglefilhemmelighed:


kubectl create secret generic google-cloud-key \
--from-file=key.json=</PATH_TO_KEY_JSON>

Opsætning af service

Opret derefter en Kubernetes-tjeneste til at udsætte proxyen:


kubectl create service type=LoadBalancer \
--selector=app=cloud-sql-proxy \
--port=3306 \
--name=cloud-sql-proxy

Bedste praksis

* Brug regionale forekomster: Cloud SQL-forekomster i samme område som GKE-klyngen reducerer forsinkelser og forbedrer ydeevnen.
* Aktiver proxycaching: Caching af almindelige forespørgsler kan forbedre applikationens ydeevne.
* Overvåg proxyen: Brug logs og metrikker til at overvåge proxyens ydeevne og identificere potentielle problemer.
* Sikkerhedshærdelse: Implementer netværksbegrænsninger og brug IP-whitelisting for at øge sikkerheden.

Konklusion

Cloud SQL Proxy er et kraftfuldt værktøj, der gør det muligt for GKE-applikationer at oprette sikker og pålidelig forbindelse til Cloud SQL-forekomster. Ved at følge de bedste praksis og implementere de beskrevne konfigurationsanbefalinger kan du få mest muligt ud af Cloud SQL Proxy og forbedre din applikations ydeevne og sikkerhed.

Ofte stillede spørgsmål

* Hvad er fordelene ved at bruge Cloud SQL Proxy sammenlignet med direkte forbindelse?
Cloud SQL Proxy tilbyder sikker forbindelse, automatiseret håndtering af forbindelser, forbedret ydeevne og nem konfiguration, hvilket gør det til en bedre løsning end direkte forbindelse.
* Kan Cloud SQL Proxy bruges til at oprette forbindelse til eksterne databaser uden for GCP?
Nej, Cloud SQL Proxy kan kun bruges til at oprette forbindelse til Cloud SQL-forekomster.
* Hvordan håndterer Cloud SQL Proxy autentificering?
Cloud SQL Proxy bruger GCP-konti til autentificering, hvilket eliminerer behovet for at gemme legitimationsoplysninger i applikationskoden.
* Hvordan konfigurerer jeg proxycaching?
Aktiver proxycaching ved at tilføje --cache-time=<TIME_IN_SECONDS>-argumentet til proxykommandoen.
* Hvordan overvåger jeg Cloud SQL Proxy?
Brug logs (ved at montere et katalog til --log-file-argumentet) og metrikker (ved at montere et katalog til --stats-file-argumentet) til at overvåge proxyens ydeevne.
* Er Cloud SQL Proxy open source?
Ja, Cloud SQL Proxy er open source og tilgængelig på GitHub.
* Kan Cloud SQL Proxy bruges i en multi-cluster-konfiguration?
Ja, Cloud SQL Proxy kan bruges i en multi-cluster-konfiguration med Service Directory til at opdage proxyservere i forskellige klynger.
* Er der begrænsninger for Cloud SQL Proxys brug?
Cloud SQL Proxy har visse begrænsninger, såsom manglende understøttelse af databaseoverførsel og replikering og en grænse for antallet af samtidige forbindelser.