Cloud SQL Proxy i GKE – En komplett guide

Cloud SQL Proxy i GKE – En komplett guide

Introduktion

Cloud SQL Proxy är ett verktyg med öppen källkod som tillhandahåller säker anslutning och hantering av anslutningspooler för dina molnbaserade SQL-instanser. Genom att använda Cloud SQL Proxy kan du ansluta till dina SQL-instanser på ett säkert sätt från vilken miljö som helst, inklusive GKE-kluster.

Den här guiden ger dig en steg-för-steg-instruktion om hur du använder Cloud SQL Proxy med GKE-klustret. Vi kommer att täcka installation, konfiguration och felsökning av Cloud SQL Proxy i GKE.

Förutsättningar

Innan du börjar måste du ha följande:

* Ett Google Cloud-konto
* Ett GKE-kluster
* En molnbaserad SQL-instans

Installation

Google Cloud SDK

Först måste du installera Google Cloud SDK på din lokala maskin. Kör följande kommando för att installera SDK:

bash
gcloud components install gcloud-sdk

Cloud SQL Proxy

Installera sedan Cloud SQL Proxy med följande kommando:

bash
gcloud components install cloud-sql-proxy

Konfiguration

GKE-kluster

Skapa ett nytt ”Deployment”-objekt i ditt GKE-kluster för att köra Cloud SQL Proxy. Ersätt <YOUR_PROJECT_ID> med ditt Google Cloud-projekt-ID och <YOUR_INSTANCE_CONNECTION_NAME> med anslutningsnamnet för din molnbaserade SQL-instans:

yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: cloudsql-proxy
namespace: default
spec:
selector:
matchLabels:
app: cloudsql-proxy
template:
metadata:
labels:
app: cloudsql-proxy
spec:
containers:
- name: cloudsql-proxy
image: gcr.io/google.com/cloudsql/gke/cloud-sql-proxy:v1.6.1
command: ["/cloud_sql_proxy",
"-instances=<YOUR_PROJECT_ID>:<YOUR_INSTANCE_CONNECTION_NAME>="
"-ip_address=127.0.0.1",
"-mysql_addr=127.0.0.1:3306"]
ports:
- name: cloudsql-proxy
containerPort: 3306

Exponera tjänst

Exponera sedan Cloud SQL Proxy-tjänsten så att den blir tillgänglig för andra poddar i klustret:

bash
kubectl expose deployment cloudsql-proxy --type=ClusterIP --port=3306 --name=cloudsql-proxy-service

Anslutning

För att ansluta till din molnbaserade SQL-instans från en pod i GKE-klustret, använd följande anslutningssträng:


host=127.0.0.1
user=<YOUR_DB_USER>
password=<YOUR_DB_PASSWORD>
database=<YOUR_DB_NAME>

Ersätt <YOUR_DB_USER>, <YOUR_DB_PASSWORD> och <YOUR_DB_NAME> med de faktiska värdena för din databas.

Felsökning

”connection refused”

Om du får ett ”connection refused”-fel när du ansluter till din molnbaserade SQL-instans, kontrollera att:

* Cloud SQL Proxy-pod körs och har status ”Running”.
* Cloud SQL Proxy-tjänsten är exponerad med typen ”ClusterIP”.
* Du använder rätt anslutningssträng.

”dial tcp: lookup 127.0.0.1 on 10.0.0.1:53: read udp 10.0.0.1:56865->127.0.0.1:53: i/o timeout”

Det här felet kan uppstå om din GKE-nod inte kan lösa DNS-namnet ”127.0.0.1”. För att lösa problemet, lägg till följande rad till ”/etc/resolv.conf”-filen på noden:


nameserver 8.8.8.8

”invalid connection string”

Om du får ett ”invalid connection string”-fel, kontrollera att anslutningssträngen är korrekt formaterad och att du använder rätt värden för användarnamn, lösenord och databasnamn.

Slutsats

Genom att använda Cloud SQL Proxy i GKE kan du ansluta till dina molnbaserade SQL-instanser på ett säkert och tillförlitligt sätt. Den här guiden har gett dig en steg-för-steg-instruktion om hur du installerar, konfigurerar och felsöker Cloud SQL Proxy i GKE. Genom att följa dessa steg kan du enkelt dra nytta av fördelarna med Cloud SQL Proxy i dina GKE-applikationer.

Vanliga frågor

1. Vad är fördelarna med att använda Cloud SQL Proxy i GKE?
Cloud SQL Proxy ger en säker anslutning, anslutningspoolhantering och enkel åtkomst till molnbaserade SQL-instanser från GKE-applikationer.

2. Hur skyddar Cloud SQL Proxy anslutningar till molnbaserade SQL-instanser?
Cloud SQL Proxy använder SSL/TLS-kryptering och autentisering för att skydda anslutningar från obehörig åtkomst.

3. Hur hanterar Cloud SQL Proxy anslutningspooler?
Cloud SQL Proxy upprätthåller en pool av anslutningar till molnbaserade SQL-instanser, vilket förbättrar prestanda och minskar latensen.

4. Kan jag använda Cloud SQL Proxy för att ansluta till molnbaserade SQL-instanser i olika regioner?
Ja, Cloud SQL Proxy kan användas för att ansluta till molnbaserade SQL-instanser i alla regioner som stöds av Google Cloud.

5. Finns det några begränsningar för att använda Cloud SQL Proxy i GKE?
Cloud SQL Proxy kan endast användas för att ansluta till molnbaserade SQL-instanser med anslutningsnamn på platser som listas här: https://cloud.google.com/sql/docs/mysql/connect-external-app#gke.

6. Kan jag använda Cloud SQL Proxy för att ansluta till molnbaserade SQL-instanser som kör PostgreSQL?
Nej, Cloud SQL Proxy stöder för närvarande endast anslutningar till molnbaserade SQL-instanser som kör MySQL.

7. Hur felsöker jag problem med Cloud SQL Proxy?
Granska felloggarna i Cloud SQL Proxy-podden och se till att du använder rätt anslutningssträng och att Cloud SQL Proxy-tjänsten har typen ”ClusterIP”.

8. Var kan jag få mer information om Cloud SQL Proxy?
Besök följande länkar för mer information:
* Cloud SQL Proxy-dokumentation
* Cloud SQL Proxy-GitHub-lager
* Blogginlägg om Cloud SQL Proxy i GKE