Cloud SQL Proxy i GKE – En komplett guide


En grundlig genomgång av Cloud SQL Proxy och GKE

Inledning

Cloud SQL Proxy är ett verktyg med öppen källkod som skapar en säker bro för anslutning och hanterar anslutningspooler för dina molnbaserade SQL-databaser. Med Cloud SQL Proxy kan du på ett säkert sätt ansluta till dina SQL-instanser oavsett varifrån, inklusive direkt från GKE-kluster.

Denna guide ger dig en detaljerad beskrivning av hur du använder Cloud SQL Proxy tillsammans med ditt GKE-kluster. Vi kommer att gå igenom alla steg, från installation och konfiguration till felsökning av Cloud SQL Proxy i GKE.

Förberedelser

Innan vi sätter igång, se till att du har följande på plats:

  • Ett aktivt Google Cloud-konto
  • Ett fungerande GKE-kluster
  • En igångsatt molnbaserad SQL-instans

Installationsprocess

Google Cloud SDK

Börja med att installera Google Cloud SDK på din lokala maskin. Använd följande kommando:

gcloud components install gcloud-sdk

Cloud SQL Proxy

Installera därefter Cloud SQL Proxy med detta kommando:

gcloud components install cloud-sql-proxy

Konfigurationssteg

GKE-kluster

Skapa ett nytt ”Deployment”-objekt i ditt GKE-kluster för att aktivera Cloud SQL Proxy. Kom ihåg att ersätta <YOUR_PROJECT_ID> med ditt faktiska Google Cloud-projekt-ID och <YOUR_INSTANCE_CONNECTION_NAME> med anslutningsnamnet för din molnbaserade SQL-instans:

      
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
      
    

Tjänsteexponering

För att göra Cloud SQL Proxy tillgänglig för andra poddar i klustret, exponera den som en tjänst:

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

Anslutningsdetaljer

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>

Byt ut <YOUR_DB_USER>, <YOUR_DB_PASSWORD> och <YOUR_DB_NAME> med dina databasens faktiska värden.

Felsökningsinformation

”connection refused”-fel

Om du får ett ”connection refused”-fel när du försöker ansluta, kontrollera följande:

  • Att Cloud SQL Proxy-podden körs och har status ”Running”.
  • Att Cloud SQL Proxy-tjänsten är exponerad med typen ”ClusterIP”.
  • Att 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”-fel

Detta fel kan inträffa om din GKE-nod inte kan lösa DNS-namnet ”127.0.0.1”. Lägg till följande rad i filen ”/etc/resolv.conf” på noden för att lösa problemet:

nameserver 8.8.8.8

”invalid connection string”-fel

Om du får ett ”invalid connection string”-fel, kontrollera att din anslutningssträng är korrekt formaterad och att du använder de korrekta värdena för användarnamn, lösenord och databasnamn.

Sammanfattning

Genom att implementera Cloud SQL Proxy i GKE får du ett säkert och pålitligt sätt att ansluta till dina molnbaserade SQL-instanser. Den här guiden har gett dig alla nödvändiga steg för att installera, konfigurera och felsöka Cloud SQL Proxy i GKE. Genom att följa dessa instruktioner kan du enkelt dra nytta av Cloud SQL Proxys fördelar i dina GKE-applikationer.

Vanliga frågor

1. Vilka är fördelarna med att använda Cloud SQL Proxy i GKE?
Cloud SQL Proxy skapar en säker anslutning, hanterar anslutningspooler och ger enkel åtkomst till molnbaserade SQL-instanser för 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 dina molnbaserade SQL-instanser, vilket optimerar prestandan och reducerar svarstiderna.

4. Kan jag ansluta till molnbaserade SQL-instanser i olika regioner med Cloud SQL Proxy?
Ja, Cloud SQL Proxy kan användas för att ansluta till molnbaserade SQL-instanser oavsett region så länge den stöds av Google Cloud.

5. Finns det några begränsningar när man använder Cloud SQL Proxy i GKE?
Cloud SQL Proxy kan bara ansluta till molnbaserade SQL-instanser med anslutningsnamn från de 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 bara anslutningar till molnbaserade SQL-instanser som använder MySQL.

7. Hur felsöker jag problem med Cloud SQL Proxy?
Granska loggarna i Cloud SQL Proxy-podden och verifiera att anslutningssträngen är korrekt, samt att Cloud SQL Proxy-tjänsten har typen ”ClusterIP”.

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