Skip to content
All writing Part 03 of 09 · 從筆電連上遠端資料庫
Engineering · 2 min read

兩種通往遠端 DB 的通道:Cloud SQL Auth Proxy vs kubectl port-forward

連上遠端 DB 的兩種通道:Cloud SQL Auth Proxy(走 Admin API + IAM)與 kubectl port-forward(走 kubeconfig)。同樣落在 localhost,走的 auth 路徑不同。

同樣是本地 port → 遠端 DB的結果,但走兩條不同的 auth 路徑:

127.0.0.1:PORT 本地 port 遠端 DB Cloud SQL Auth Proxy 走 Admin API + IAM kubectl port-forward 走 kubeconfig / GKE 憑證
兩條 auth 路徑不同,但 client 看到的都是 127.0.0.1:PORT 上的原生 DB 協定。
Cloud SQL Auth Proxykubectl port-forward
適用managed Cloud SQL instance任何跑在 k8s pod/svc 裡的 DB
定位方式project:region:instancenamespace + svc/pod
Auth 路徑Cloud SQL Admin API + IAM(ADC/service account)你的 kubeconfig(GKE 憑證)
加密到 instance 的臨時 TLS 通道經 k8s API server 的通道
Client 看到的純 localhost TCP(原生 wire protocol)一樣

Client 永遠只對 127.0.0.1:PORT正常的 DB 協定;通道是透明的,client 不知道中間隔了一層。

這次的實例: Postgres/MySQL 走 cloud_sql_proxy(Admin API);ClickHouse 跑在 GKE 裡,所以走容器化的 kubectl port-forward——這也是為什麼只有它需要先做一次性的 gcloud container clusters get-credentials

兩條通道 auth 路徑不同,但 client 端看到的都是 127.0.0.1:PORT 上的原生 DB 協定。


參考來源

Related: 回到遠端資料庫連線總覽;這條通道會把你帶到 127.0.0.1:PORT 上的五個座標

Tags #databases #gcp #kubernetes
// connect

Be brave | Be wise | Be grateful

21 BreakinCode

// elsewhere
LinkedInMedium (lang: en)Youtube
wh:~$William Hung· © 2026 Taipei · GMT+8 · Available for collaboration