K8S集群內Pod如何與本地網絡打通實現debug
前言
大家都知道,在沒有K8S集群時,我們能直接連接測試環境服務實現debug。隨著K8S到來,我們無法直接連接業務服務dubug,K8S Pod 分配的IP地址是集群內部網絡,集群外部網絡是無法直接訪問到Pod,那有什么好的解決方法能直接連接Pod?下面介紹下開源 Telepresence。
Telepresence 簡介
Telepresence 是一種開源工具,可讓您在本地運行單個服務,同時將該服務連接到遠程 Kubernetes 集群。這使開發 multi-service 應用程序的開發人員能夠:
- 對單個服務進行快速本地開發,即使該服務依賴于集群中的其他服務。對您的服務進行更改并保存,您可以立即看到正在運行的新服務。
- 使用本地安裝的任何工具來 測試/調試/編輯 您的服務。例如,您可以使用調試器或 IDE!
- 讓您的本地開發機器像 Kubernetes 集群的一部分一樣運行。如果您的機器上有一個應用程序要針對集群中的服務運行——這很容易做到。
開源地址: https://github.com/telepresenceio/telepresence
Telepresence 如何運行
Telepresence 在 Kubernetes 集群中運行的 pod 中部署雙向網絡代理。此 pod 將數據從您的 Kubernetes 環境(例如 TCP 連接、環境變量、卷)代理到本地進程。本地進程的網絡被透明覆蓋,以便 DNS 調用和 TCP 連接通過代理路由到遠程 Kubernetes 集群。
這種方法給出:
- 您的本地服務可以完全訪問遠程集群中的其他服務
- 您的本地服務對 Kubernetes environment、secrets和 ConfigMap 的完全訪問權限
- 您的遠程服務可以完全訪問您的本地服務
Telepresence 支持的運行平臺
- Mac OS X
- Linux
Telepresence 安裝
可使用 Homebrew、apt 或 dnf 安裝
Telepresence 使用報告
Telepresence 收集有關其用戶的一些基本信息,以便它可以發送重要的客戶通知,例如新版本可用性和安全公告。我們還使用這些信息匿名匯總基本使用情況分析。要禁用此行為,請設置環境變量 SCOUT_DISABLE:
- export SCOUT_DISABLE=1
Telepresence 使用方法
這里不在描述,具體參考 https://www.telepresence.io/tutorials/kubernetes
參考鏈接
- https://github.com/telepresenceio/telepresence
- https://www.telepresence.io/discussion/overview































