8

K8S集群内Pod如何与本地网络打通实现debug

 2 years ago
source link: https://www.yp14.cn/2021/06/06/K8S%E9%9B%86%E7%BE%A4%E5%86%85Pod%E5%A6%82%E4%BD%95%E4%B8%8E%E6%9C%AC%E5%9C%B0%E7%BD%91%E7%BB%9C%E6%89%93%E9%80%9A%E5%AE%9E%E7%8E%B0debug/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

大家都知道,在没有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 environmentsecretsConfigMap 的完全访问权限
  • 您的远程服务可以完全访问您的本地服务

Telepresence 支持的运行平台

  • Mac OS X
  • Linux

Telepresence 安装

可使用 Homebrew、apt 或 dnf 安装

Telepresence 使用报告

Telepresence 收集有关其用户的一些基本信息,以便它可以发送重要的客户通知,例如新版本可用性和安全公告。我们还使用这些信息匿名汇总基本使用情况分析。要禁用此行为,请设置环境变量 SCOUT_DISABLE

export SCOUT_DISABLE=1

Telepresence 使用方法

这里不在描述,具体参考 https://www.telepresence.io/tutorials/kubernetes

---本文结束感谢您的阅读。微信扫描二维码,关注我的公众号---


ypxz-2.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK