Java OpenResty Spring Spring Boot MySQL Redis MongoDB PostgreSQL Linux Android Nginx 面试 小程序 Arthas JVM AQS juc Kubernetes Docker DevOps


IDEA 使用 Kubernetes 瑞士军刀 Telepresence 进行网络代理

IDEA Kubernetes Telepresence 大约 1153 字

关于 Telepresence

telepresence connect代理本机电脑,使本地就像处于Kubernetes集群环境中,能够直接使用集群的Service域名访问。

telepresence intercept能够拦截指定的Deployment入站流量,导入到本地,方便Debug、修复Bug、验证问题。

与 port-forward 差别

port-forward对于多个service需要开启多个kubectl命令,本地需要映射多个端口,并且是单向流量,只能本地向集群发送。

Telepresence直接让本地处于Kubernetes环境,直接使用service域名访问(ClusterIP类型的Service也可以直接域名访问),而且是双向流量,集群中流量访问本地服务,本地服务访问集群Service

举例说明拦截功能

ServiceAServiceBServiceC三个后端服务,业务调用为ServiceA->ServiceB->ServiceC,先初步发现是ServiceB服务有可能有问题,则使用telepresence intercept service-b-deployment拦截掉访问ServiceB的流量,并转发到本地启动的ServiceB服务。

即本地需要启动ServiceB的服务,集群中的ServiceA调用ServiceB服务时,Telepresence会拦截调用被转发到本地的ServiceB,本地ServiceB会继续调用集群中的ServiceC,因为intercept前提是connect,说明本地环境已经是Kubernetes集群环境了,本地ServiceB可以直接调用集群ServiceC

前提

  1. 本地安装Telepresence二进制文件,配置环境变量。
  2. Telepresence只能拦截DeploymentStatefulSetReplicaSet
  3. 必须有对应ServiceKubernetesService)。

说明

IDEA 2022.2版本的Kubernetes插件才提供的Telepresence功能。

目前IDEA中只能connect,不能quit,需要去命令行执行quit命令。

并且IDEA中不能卸载边车traffic-agent,需要去命令行执行uninstall命令。

备注

Windows需使用CMD、子系统、Chrome访问KubernetesService域名。

不能使用Powershellcurl

视频讲解

https://www.bilibili.com/video/BV1oU4y1z78i

https://www.ixigua.com/i7140007077765710371

阅读 70 · 发布于 2022-09-06

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb

扫描下方二维码关注公众号和小程序↓↓↓

扫描二维码关注我
昵称:
随便看看 换一批