在本機開發與除錯服務 (使用 telepresence)
Kubernetes 應用程式通常由多個獨立的服務組成,每個服務都在自己的容器中執行。在遠端 Kubernetes 叢集上開發和除錯這些服務可能很麻煩,需要您在執行中的容器上取得 Shell,才能執行除錯工具。
telepresence
是一個工具,旨在簡化在本機開發和偵錯服務的流程,同時將服務代理到遠端的 Kubernetes 叢集。使用 telepresence
讓您能為本機服務使用自訂工具,例如偵錯器和 IDE,並讓服務完整存取 ConfigMap、密鑰,以及在遠端叢集上執行的服務。
本文件說明如何使用 telepresence
在本機開發和偵錯於遠端叢集上執行的服務。
開始之前
- 已安裝 Kubernetes 叢集
kubectl
已設定為與叢集通訊- Telepresence 已安裝
將您的本機電腦連線至遠端 Kubernetes 叢集
安裝 telepresence
之後,執行 telepresence connect
以啟動其 Daemon 並將您的本機工作站連線至叢集。
$ telepresence connect
Launching Telepresence Daemon
...
Connected to context default (https://<cluster public IP>)
您可以使用 Kubernetes 語法 curl 服務,例如 curl -ik https://kubernetes.default
開發或偵錯現有服務
在 Kubernetes 上開發應用程式時,您通常會程式設計或偵錯單一服務。該服務可能需要存取其他服務以進行測試和偵錯。一種選擇是使用持續部署管線,但即使是最快的部署管線也會在程式設計或偵錯週期中引入延遲。
使用 telepresence intercept $SERVICE_NAME --port $LOCAL_PORT:$REMOTE_PORT
命令來建立「攔截 (intercept)」,以重新導向遠端服務流量。
其中
$SERVICE_NAME
是您本機服務的名稱$LOCAL_PORT
是您的服務在本機工作站上執行的埠- 而
$REMOTE_PORT
是您的服務在叢集中監聽的埠
執行此命令會告知 Telepresence 將遠端流量傳送到您的本機服務,而不是遠端 Kubernetes 叢集中的服務。在本機編輯您的服務原始碼、儲存,並在存取您的遠端應用程式時立即看到對應的變更生效。您也可以使用偵錯器或任何其他本機開發工具來執行您的本機服務。
Telepresence 如何運作?
Telepresence 會在遠端叢集中執行的現有應用程式容器旁邊安裝一個 traffic-agent sidecar。然後,它會擷取所有進入 Pod 的流量請求,並且不會將其轉發到遠端叢集中的應用程式,而是將所有流量(當您建立全域攔截 (global intercept) 時)或部分流量(當您建立個人攔截 (personal intercept) 時)路由到您的本機開發環境。
接下來
如果您對實作教學課程感興趣,請查看本教學課程,其中逐步說明如何在 Google Kubernetes Engine 上本機開發 Guestbook 應用程式。
如需進一步閱讀,請造訪 Telepresence 網站。
本頁面上的項目參考了第三方產品或專案,這些產品或專案提供了 Kubernetes 所需的功能。Kubernetes 專案作者不對這些第三方產品或專案負責。如需更多詳細資訊,請參閱 CNCF 網站指南。
在提議新增額外的第三方連結的變更之前,您應該閱讀內容指南。