昨天簡介完了 telepresence
基礎應用,今天來介紹來一些筆者實務上比較常用的進階使用方式。
昨天的使用的方式是 telepresence
預設會起一個 POD 進入 k8s 的網路中,那如果今天你是要取代原本的 POD呢? 那我們來看看怎麼使用
我們一樣用前幾天的文章,所提供的 example first-helloworld
先查詢看看目前 POD 狀況
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
first-hellworld-deployment-566d79fb7-d4vdg 2/2 Running 0 8m33s
first-hellworld-deployment-566d79fb7-bljd6 2/2 Running 0 8m33s
first-hellworld-deployment-566d79fb7-295wr 2/2 Running 0 8m33s
執行 telepresence
$ telepresence --swap-deployment first-hellworld-deployment --expose 8080
照著下面就會發現 POD 通通都被替換掉了喔
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
first-hellworld-d-ed6163063b604edeabbdc6aba14b7d7e 2/2 Running 0 10m
此時可以在執行 telepresence 的那個 session 任意執行命令,甚至也可以另外起一個聽 8080 port 的服務,在你本機,原本的 first-helloworld service 都還是會把流量都導進來你這個 session 裡面。這在實務上,非常好用,你可以隨時對眾多服務中任一個服務,做本機端的開發 & 測試。
當然會有人問如果有不同 namepsace 的 pod 需要做切換要怎麼辦呢?
telepresence --namespace --swap-deployment ${your-deployment}
在 multipass 架設下,使用 telepresence 會有網路問題,使用時本機會連不到外面網路,跟使用完畢後 multipass 裡面的虛擬機會連不到外面網路。 但是實務上 telepresence 都是用在不好的測試的外部環境,在本機環境下,應該是不會有 multipass + telepresence 的用法