今天來聊聊,在微服務系統越來越流行的原因,就是因為將大型服務,解構成不同的子系統,將大型系統的複雜度降低,透過 k8s 的編排,讓我們可以很輕易控制。

但是也因為眾多子系統,如果沒有在 k8s 上會變得很不好運行,也就是開發環境不容易設置,今天來跟大家分享一個工具 telepresence

介紹 telepresence

Telepresence 是一个 CNCF 基金會下的產品。它的原理是在本地和 k8s 搭建一個雙向 proxy,這可以讓我在本地環境使用熟悉的 IDE 和調整工具来運作一个微服務,同時該服務还可以無縫的與 k8s 上其他服務互相溝通,好像它就運作在這個 k8s 中一樣。

telepresence-arch

我們用前幾天做過的範例,來做舉例,我們假設今天要對 grpc-server 做除錯,如果我要在本機模擬開發,我還需要同時啟動 grpc-server & grpc-client,兩個服務是還好,但是服務規模一大之後,相依服務就不是你想要快速啟動就能辦到的。

所以今天我們只要把 grpc-server 攔截下來在本機,telegresence 就會自動幫你把所有會去 grpc-server 的流量都攔截下來,這樣你只要在本機啟動 grpc-server,就可以看到外部流量不斷進來。反之如果你要攔截 grpc-client,你在本機也可以直接呼叫到 k8s 裡面的 grpc-server 。

注意,此方法因為會被流量都會導進本機,如果要在正式環境使用,請千萬小心。

明天我們就來介紹一下安裝跟簡單使用的方式。