Innehållsförteckning
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