1.下载kt安装包

地址: https://github.com/alibaba/kt-connect/releases

2.下载k8s集群的config文件

cd  /root/.kube
下载服务器的`config`文件

3.安装config文件

  1. 切换到用户目录C:\Users\yangx
  2. 创建.kube文件夹mkdir .kube
  3. 目录结构为C:\Users\yangx\.kube
  4. 把下载config文件移动到C:\Users\yangx\.kube

4. 启动代理

  1. 解压压缩包
  2. 在当前目录执行 .\ktctl.exe connect

这样代理就成功了

5. 怎么代理流量

5.1.将集群流量转发到本地

KtConnect提供了两种能够让集群流量重定向到本地服务的命令,在使用场景上稍有不同。

  • Exchange:将集群指定服务的所有流量转向本地
  • Mesh:将集群指定服务的部分流量(按Header或Label规则)转向本地

Exchange命令

将集群里访问指定服务的所有请求拦截并转发到本地的指定端口。通常用于调试在测试环境里,调试位于业务调用链中间环节的特定服务。

┌──────────┐     ┌─ ── ── ──     ┌──────────┐
│ ServiceA ├─┬─►x│ ServiceB │ ┌─►│ ServiceC │
└──────────┘ │    ── ── ── ─┘ │  └──────────┘exchange             ││   ┌──────────┐ │└──►│ ServiceB'├─┘ (本地服务实例)└──────────┘

使用ktctl exchange命令将先前部署到集群中的tomcat服务流量全部转到本地8080端口:

$ ktctl exchange tomcat -n dev --expose 8080
  • tomcat:这里指的是k8s的service的名称

  • -n dev:是指命名空间 dev


    当出现如下图,则表示成功

Mesh命令

将集群里访问指定服务的部分请求拦截并转发到本地的指定端口。通常用于团队协作时,需要定向调试调用链中间位置的服务,又不希望影响其他开发者正常使用测试环境的场景。

┌──────────┐     ┌──────────┐    ┌──────────┐
│ ServiceA ├─┬──►│ ServiceB │─┬─►│ ServiceC │
└──────────┘ │   └──────────┘ │  └──────────┘mesh              ││   ┌──────────┐ │└──►│ ServiceB'├─┘ (本地服务实例)└──────────┘

Mesh命令有两种运行模式,默认的auto模式不需要额外的服务网格组件,能够直接实现HTTP请求的自动按需路由。

ktctl mesh tomcat --expose 8080
00:00AM INF KtConnect start at <PID>
... ...
--------------------------------------------------------------Now you can access your service by header 'VERSION: feo3x'
--------------------------------------------------------------

若请求包含Mesh命令输出的Header,则流量将自动被本地的服务实例接收。

$ curl -H 'VERSION: feo3x' http://tomcat:8080

总结

ktctl exchangektctl mesh命令的最大区别在于,前者会将原应用实例流量全部替换为由本地服务接收,而后者仅将包含指定Header的流量导流到本地,同时保证测试环境正常链路始终可用。

5.2.将本地服务提供给其他开发者

除了已经部署到集群的服务,在开发过程中,也可以利用KtConnect将本地服务快速"放"到集群,变成一个临时的服务,供其他开发者或集群中的其他服务使用。

  • Preview:将本地服务注册为集群里的Service
  • Forward:将集群服务映射到本地,结合Preview命令可实现开发者之间跨主机使用Localhost地址互访

Preview命令

将本地运行的服务实例注册到集群上。主要用于将本地开发中的服务提供给其他开发者进行联调和预览。

使用ktctl preview命令将运行在本地8080端口的服务注册到测试集群,命名为tomcat-v2

$ ktctl preview tomcat-v2 --expose 8080
00:00AM INF KtConnect start at <PID>
... ...
---------------------------------------------------------------Now you can access your local service in cluster by name 'tomcat-v2'
---------------------------------------------------------------
  • tomcat-v2 是一个service

现在集群里的服务就可以通过tomcat-v2名称来访问本地注册的服务实例了,其他开发者也可以在执行ktctl connect后,直接通过tomcat-v2服务名称来预览该服务的实时情况:

$ curl http://tomcat-v2:8080
kt-connect local v2

Forward命令

将任意IP或集群中的服务映射到本地的指定端口。用于在测试时,使用localhost地址便捷的访问集群中的特定IP或服务,典型场景是是访问其他开发者通过Preview命令注册的本地服务。

         ┌─────────────────────────────┐forward           |           preview
┌────────┴───────┐      |      ┌───────▼──────┐
│ localhost:8080 │      |      │ local tomcat │
└────────────────┘      |      └──────────────┘开发者 B           |           开发者 A

例如当一个开发者A运行了前述的Preview命令后,另一个开发者B可以使用ktctl forward命令将它映射到自己本地的6060端口。

$ ktctl forward tomcat-v2 6060:8080
00:00AM INF KtConnect start at <PID>
... ...
---------------------------------------------------------------Now you can access port 8080 of service 'tomcat-v2' via 'localhost:6060'
---------------------------------------------------------------

现在开发者B就可以使用localhost:6060地址访问到开发者A本地运行的Tomcat服务了。

当映射的流量源是集群中的服务名时,其效果与kubectl port-forward命令相似,只是额外增加了断网自动重连的能力。

kt-connect使用-k8s流量代理相关推荐

  1. 我们重写了七层流量代理BFE的路由转发机制

    BFE路由转发模型如下图所示. 以http请求为例,当请求到达BFE时,BFE首先根据请求域名确定租户(哪个业务线),再根据请求的路径确定集群(服务/微服务),然后确定子集群(机房),最后负载均衡选择 ...

  2. Kt Connect 对windows的支持

    说一下 kt connect的特点 连接:直接访问远程Kubernetes集群.KT Connect sshuttle用作访问远程Kubernetes集群网络的vpn工具. 交换:开发人员可以交换工作 ...

  3. Tiller pods can‘t connect to k8s apiserver,dial tcp 10.254.0.1:443: no route to host

    1. 问题 使用helm list查看本地安装应用时,报错 # helm listError: Get https://10.254.0.1:443/api/v1/namespaces/kube-sy ...

  4. 【流量代理】代理模式

    文章目录 直连模式 pac模式 全局模式 参考 找了好几篇文章,终于找到了Pac的全称. 直连模式 顾名思义直连模式就是不使用任何代理的模式,这种模式下你访问网站时不会走代理ip还是你自己的. pac ...

  5. Burpsuite配置抓apk流量代理设置脚本

    目录 1.Burpsuite配置抓apk流量基础步骤 1.1 雷电模拟器配置抓包 1.2 木木模拟器配置抓包

  6. UC浏览器代理流量解密

    点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 解密uc浏览器的安全代理流量,看看是不是真安全." 作为一个从上古网络时代过来的人,一定对UC浏览器有深刻印象,它的流量透明代理功 ...

  7. sqlmap md5怎么解密_UC浏览器代理流量解密

    点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 解密uc浏览器的安全代理流量,看看是不是真安全." 作为一个从上古网络时代过来的人,一定对UC浏览器有深刻印象,它的流量透明代理功 ...

  8. 关于命令行代理流量的问题

    Windows 注:以下代理仅作用于当前命令行! HTTP 代理设置: set http_proxy=http://127.0.0.1:10809 http访问设置 set https_proxy=h ...

  9. k8s本地联调工具kt-connect

    1.Kt Connect简介 KT Connect ( Kubernetes Developer Tool ) 是轻量级的面向 Kubernetes 用户的开发测试环境治理辅助工具.其核心是通过建立本 ...

最新文章

  1. 1.11 双向循环神经网络-深度学习第五课《序列模型》-Stanford吴恩达教授
  2. 多线程可以使用计算机多核那,【多线程逻辑面试题】面试问题:异步操作的优缺… - 看准网...
  3. 决策树---ID3算法
  4. HALCON示例程序max_connection.hdev确定分割区域的最大区域数目
  5. linux端口接收中文乱码,linux中显示中文乱码如何解决
  6. 爬虫app信息抓取之apk反编译抓取
  7. 图解tcmalloc内存分配器
  8. 随想录(文件系统的第一个用户程序shell)
  9. Django Ajax学习一
  10. [spring] 源码简析 如何解决循环依赖?
  11. 孤独星球android app,《孤独星球》终于出了全套免费的旅行指南APP!
  12. 属性编辑器PropertyEditor
  13. python日历图_Python干货宝典!玩转内置模块:日历模块
  14. 爱签电子合同电子签章助力银行数智化发展
  15. VBS脚本学习:遍历XML文档
  16. 本机不装Oracle,远程访问服务器上Oracle教程
  17. linux智能手机防盗程序-手机丢失不再是易事,安全管家防盗功能 助用户快速找回手机...
  18. onbeforeunload设置用户关闭离开页面时提醒用户保存信息
  19. 平流式沉淀池流量计算_沉淀池设计计算(平流式
  20. 企业短期偿债能力评估-流动比率、速动比率、现金比率、现金流量比率

热门文章

  1. 静态路由简介及配置---有栗子
  2. 远程桌面通过RDP文件进行自动登录
  3. SQL学习(六):not exists用法
  4. Oculus Quest 2 和 Unity 的 VR 开发基础知识
  5. Request Id
  6. matlab求最短路径问题,Matlab最短路径问题记录
  7. HNU软件能力实训3-4. 打牌
  8. ng2 angular2 使用bootstrap框架
  9. 多肽定制服务 | Peptides - MedChemExpress
  10. centos stream9 安装mysqld8.0.30