使用 Telepresence 本地開發和除錯服務

Kubernetes 應用程式通常由多個獨立的微服務組成,每個服務都在自己的容器中執行。在遠端 Kubernetes 叢集上開發和除錯這些服務可能很麻煩,需要你在執行中的容器中獲取 Shell 才能執行除錯工具。

telepresence 是一款工具,旨在簡化在本地開發和除錯服務的過程,同時將服務代理到遠端 Kubernetes 叢集。使用 telepresence,你可以為本地服務使用自定義工具(例如偵錯程式和 IDE),並讓該服務完全訪問遠端叢集上執行的 ConfigMap、Secret 和其他服務。

本文件介紹瞭如何使用 telepresence 在本地開發和除錯遠端叢集上執行的服務。

準備工作

  • Kubernetes 叢集已安裝
  • kubectl 已配置為與叢集通訊
  • Telepresence 已安裝

將本地機器連線到遠端 Kubernetes 叢集

安裝 telepresence 後,執行 telepresence connect 啟動其守護程序並將你的本地工作站連線到叢集。

$ 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 命令建立“攔截”,以重新路由遠端服務流量。

其中

  • $SERVICE_NAME 是你的本地服務的名稱
  • $LOCAL_PORT 是你的服務在本地工作站上執行的埠
  • $REMOTE_PORT 是你的服務在叢集中監聽的埠

執行此命令會告訴 Telepresence 將遠端流量傳送到你的本地服務,而不是遠端 Kubernetes 叢集中的服務。在本地對服務原始碼進行編輯、儲存,並在訪問遠端應用程式時立即看到相應的更改生效。你還可以使用偵錯程式或任何其他本地開發工具執行本地服務。

Telepresence 如何工作?

Telepresence 在遠端叢集中執行的現有應用程式容器旁邊安裝一個流量代理 sidecar。然後,它捕獲進入 Pod 的所有流量請求,並且不是將這些請求轉發到遠端叢集中的應用程式,而是將所有流量(當你建立全域性攔截時)或部分流量(當你建立個人攔截時)路由到你的本地開發環境。

下一步

如果你對實踐教程感興趣,請檢視此教程,它詳細介紹瞭如何在 Google Kubernetes Engine 上本地開發 Guestbook 應用程式。

如需進一步閱讀,請訪問 Telepresence 網站

此頁面上的專案涉及提供 Kubernetes 所需功能的第三方產品或專案。Kubernetes 專案作者不對這些第三方產品或專案負責。有關更多詳細資訊,請參閱 CNCF 網站指南

在提議新增額外第三方連結的更改之前,你應該閱讀內容指南

上次修改時間:2023 年 11 月 24 日太平洋標準時間下午 4:55:解決問題:#44034 (802dde6897)