Kubernetes教程

Kubernetes开发/调试服务

Kubernetes 应用程序通常由多个独立的服务组成,每个服务都在自己的容器中运行。 在远端的 Kubernetes 集群上开发和调试这些服务可能很麻烦, 需要在运行的容器上打开 Shell, 以运行调试工具。

telepresence 是一个工具,旨在简化本地开发和调试服务的过程。它提供了一种便捷的方式,将本地服务代理到远程运行的 Kubernetes 集群中。使用 Telepresence,开发人员可以使用他们喜欢的自定义工具(例如调试器和 IDE)来调试本地服务,同时完全访问 ConfigMap、Secret 和远程集群上运行的其他服务。

一、准备

  • Kubernetes 集群安装完毕;
  • 配置好 kubectl 与集群交互;
  • Telepresence 安装完毕。

二、连接远程集群

安装 telepresence 后,运行 telepresence connect 来启动它的守护进程并将本地工作站连接到远程 Kubernetes 集群。

$ telepresence connect
Launching Telepresence Daemon
...
Connected to context default (https://<cluster public IP>)

可以通过 curl 使用 Kubernetes 语法访问服务,例如: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 的所有流量请求时,不是将其转发到远程集群中的应用程序, 而是路由所有流量(当创建全局拦截器时) 或流量的一个子集(当创建自定义拦截器时) 到本地开发环境。

广告合作
QQ群号:707632017

温馨提示:

1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com。(#改为@)

2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。

目录