全栈工程师开发手册 (作者:栾鹏)
架构系列文章


官方github:https://github.com/alibaba/kt-connect

本地linux安装

# 切换到root用户
sudo su
# pip install sshuttle
# curl -OL https://rdc-incubators.oss-cn-beijing.aliyuncs.com/stable/ktctl_linux_amd64.tar.gz
# tar -xzvf ktctl_linux_amd64.tar.gz
# mv ktctl_linux_amd64 /usr/local/bin/ktctl
# ktctl -h

这种安装的可能不是最新版,也可以离线下载.下载地址:

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

在Kubernetes中部署联调服务

kubectl run tomcat --image=tomcat:7 --expose --port=8080
会自动创建deployments和service

Connect 从本地访问Kubernetes资源

本地执行

root用户执行
# ktctl --kubeconfig /home/luanpeng/.kube/config --debug connect

如果提示已经运行,则可以在k8s中把deployment删除,在客户端把/home/luanpeng/.ktctl/文件夹删除.
访问PodIP:

运行成功后可以查看是否成功启动sshuttle

ps -ef |grep sshuttle

如果sshuttle两个进程没有启动,则说明启动失败

/usr/bin/python3 /usr/local/bin/sshuttle --dns --to-ns 10.42.0.58 -e ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -i /root/.kt_id_rsa -r /usr/bin/python3 /usr/local/bin/sshuttle --method auto --firewall

在这种场景下,开发者只要直接使用ktctl connect打通本地到集群的网络即可,就可以直接在本地通过PodIP/ClusterIP/DNS地址访问集群中的服务。

curl http://172.16.0.147:8080

访问ClusterIP:

$ curl http://172.19.143.139:8080

Access Server内部DNS地址(未测试成功, 提示Could not resolve host)

# 先看是否能正常解析
nslookup tomcat.default.svc.cluster.local
# 试一下http请求
$ curl http://tomcat.default.svc.cluster.local:8080

Exchange从群集访问本地

在本地创建Tomcat 8并公开8080端口

docker run -itd -p 8080:8080 tomcat:8
$ ktctl exchange tomcat --expose 8080

暴露本地服务到k8s中

$ ktctl exchange tomcat --expose 8080

在k8spod中通过内部服务DNS地址访问本地tomcat:

注意:如果kubectl connect未运行,则只能从群集访问

$ curl http://tomcat.default.svc.cluster.local:8080 | grep '<h1>'

在这个场景下,我们希望集群中所有对服务C的访问能够请求到本地正在开发的C’。因此开发者可以通过ktctl exhcnage命令,在集群内部署一个Shadow容器已接管所有原本对C实例的请求,再通过Shadow容器将请求转发到本地。并在退出命令式恢复集群中C的实例状态。
https://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA==&mid=2649703426&idx=1&sn=22be252aac597745cf832df987b324cf&chksm=88937b61bfe4f277d4744f2205a4f1fbdc7ff928e386c5aa728d8e0baccb202f44ef502a78a9&mpshare=1&scene=1&srcid=&sharer_sharetime=1572233974491&sharer_shareid=13fe4d560ad7f178a70a6b90efad8011#rd

Mesh

mesh与exchange的最大区别在于,exchange会完全替换原有的应用实例。mesh命令创建代理容器,但是会保留原应用容器,代理容器会动态生成version标签,以便用于可以通过Istio流量规则将特定的流量转发到本地,同时保证环境正常链路始终可用。在这种场景下,在确保开发测试环境稳定的同时,基于Istio的流量规则,我们可以把部分流量转到本地,从而实现在共享的开发测试环境中的联调能力。

仪表盘部署

参考:https://alibaba.github.io/kt-connect/#/guide/dashboard

kubernets 集群和本地环境联调环境打通工具kt-connect相关推荐

  1. linux集群中mpi的并行计算环境简单配置,linux集群中MPI的并行计算环境简单配置(转)...

    一.集群和Linux上的集群解决方案 集群计算机是指用一组联网的PC或工作站来搭建成的,提供比单个PC(节点)计算性能高得多的计算机.说其是计算机,其实是针对所提供出来的服务而言的,或者说是逻辑上来说 ...

  2. Kubernets集群管理-升级 kubernetes 集群版本到v1.21.14

    Kubernets集群管理-kubernets集群升级 文章目录 Kubernets集群管理-kubernets集群升级 前言 一.检查kubernets各组件当前版本 二.升级控制节点平面kuber ...

  3. RabbitMQ 集群搭建_02_rpm版本(linux环境)

    接上一篇:(企业级) CentOS7 安装 RabbitMQ最新版本 下载.安装.配置.运行.部署_01 文章目录 一.SHELL脚本说明 1. 选择脚本的原因 2. 脚本总览 二.脚本实战 2.1. ...

  4. linux集群中mpi的并行计算环境简单配置,linux集群中MPI的并行计算环境简单配置...

    MPI有多种实现版本,如MPICH, CHIMP以及OPENMPI.其中MPICH是一种最重要的MPI实现,它可以从网上免费获得Linux和Windows版本.它的开发和MPI规范的制定是同步的,因此 ...

  5. redis3.0 java spring_Redis-3.0.6 集群部署集成SpringJava工程-----环境搭建

    注:本文所有操作都使用管理员权限 su root 输入密码 1.打开对应的端口- 既所有集群的端口号全部都打开 / 安装Jdk----暂时使用openJDK可行 /sbin/iptables -I I ...

  6. windows+nginx+tomcat实现集群负载均衡(生产环境必读)

    概念理解(原文链接) 集群:多个tomcat服务器运行同一个web服务就能称之为集群 负载均衡:apache按照一定方式将不同的客户端访问分配到不同的tomcat服务器 简单负载均衡实现: 网上参考了 ...

  7. ES学习笔记(二):集群配置与启动 --mac环境

    1 环境准备: 复制原有es文件,分别为三个文件夹:Node-8001,Node-8002,Node-8003 删除三个文件夹中的data文件,清除log文件 修改配置文件 1.1修改配置文件 配置文 ...

  8. Nacos 单机集群搭建及常用生产环境配置 | Spring Cloud 3

    一.Nacos 概览 Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现.配置管理 ...

  9. kubernets 集群搭建

    kubernets 介绍 kubernetes具有以下特性: 服务发现和负载均衡 Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器,如果进入容器的流量很大, Kubernete ...

最新文章

  1. MIT博士生、北大校友,利用自监督算法,解决了数据集中这一常见的“难题”...
  2. matlab数据接口技术,实战MATLAB之文件与数据接口技术
  3. Android 本地搭建Tomcat服务器供真机测试
  4. 文件服务器换个用登录,文件服务器迁移 登录
  5. c# gerber文件读取_懒猪编程实例六:Visual C# 实现外部文件的读取和写入
  6. Graph cut [转]
  7. BFC的布局规则以及触发条件
  8. 【李宏毅机器学习】Transformer(p23) 学习笔记
  9. 【解决方案】HIKSDK/大华SDK/Ehome协议视频融合平台EasyCVR在危化行业的监控系统搭建应用
  10. Excel文件对比工具
  11. “首月0保费”导流模式告终 知名互联网保险平台开始裁员
  12. jacobi方法 matlab,Jacobi(雅可比)迭代原理与matlab代码
  13. 【中塘镇】助力儿童,健康成长---创意超轻黏土手工制作主题活动
  14. 第十二届蓝桥杯D题 货物摆放
  15. Google Deepmind的自杀开关研究或缓解人工智能恐慌
  16. 微信十周年了,一文速览六大生态产品成绩单
  17. 头条、油条商标有多像?Python检测发现相似度高达98.4%!
  18. SuperVariMag 超导磁体系统 — SVM 系列
  19. 用python实现简单飞行棋
  20. 【人因工程】人机交互接口概述

热门文章

  1. ios 打印 详细错误日志_iOS打印Debug日志的方式
  2. create-react-app 后需要npm run eject
  3. VScode Settings Sync同步功能设置
  4. android7.0如何自定义添加系统服务
  5. python发送微信消息_python 发送QQ或者微信消息
  6. java物品类_Java:类中的所有东西都是静态的 – 这是合理的吗?
  7. delphi基于html页面和xml实现表单填写,如何从xml文件读取数据,并以delphi语言显示在文本框中...
  8. java类功能的模块化电源_Java9模块化指南
  9. idea git和svn间切换
  10. layer 弹出框(iframe层)父子页面传值