kubernets 集群和本地环境联调环境打通工具kt-connect
全栈工程师开发手册 (作者:栾鹏)
架构系列文章
官方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相关推荐
- linux集群中mpi的并行计算环境简单配置,linux集群中MPI的并行计算环境简单配置(转)...
一.集群和Linux上的集群解决方案 集群计算机是指用一组联网的PC或工作站来搭建成的,提供比单个PC(节点)计算性能高得多的计算机.说其是计算机,其实是针对所提供出来的服务而言的,或者说是逻辑上来说 ...
- Kubernets集群管理-升级 kubernetes 集群版本到v1.21.14
Kubernets集群管理-kubernets集群升级 文章目录 Kubernets集群管理-kubernets集群升级 前言 一.检查kubernets各组件当前版本 二.升级控制节点平面kuber ...
- RabbitMQ 集群搭建_02_rpm版本(linux环境)
接上一篇:(企业级) CentOS7 安装 RabbitMQ最新版本 下载.安装.配置.运行.部署_01 文章目录 一.SHELL脚本说明 1. 选择脚本的原因 2. 脚本总览 二.脚本实战 2.1. ...
- linux集群中mpi的并行计算环境简单配置,linux集群中MPI的并行计算环境简单配置...
MPI有多种实现版本,如MPICH, CHIMP以及OPENMPI.其中MPICH是一种最重要的MPI实现,它可以从网上免费获得Linux和Windows版本.它的开发和MPI规范的制定是同步的,因此 ...
- redis3.0 java spring_Redis-3.0.6 集群部署集成SpringJava工程-----环境搭建
注:本文所有操作都使用管理员权限 su root 输入密码 1.打开对应的端口- 既所有集群的端口号全部都打开 / 安装Jdk----暂时使用openJDK可行 /sbin/iptables -I I ...
- windows+nginx+tomcat实现集群负载均衡(生产环境必读)
概念理解(原文链接) 集群:多个tomcat服务器运行同一个web服务就能称之为集群 负载均衡:apache按照一定方式将不同的客户端访问分配到不同的tomcat服务器 简单负载均衡实现: 网上参考了 ...
- ES学习笔记(二):集群配置与启动 --mac环境
1 环境准备: 复制原有es文件,分别为三个文件夹:Node-8001,Node-8002,Node-8003 删除三个文件夹中的data文件,清除log文件 修改配置文件 1.1修改配置文件 配置文 ...
- Nacos 单机集群搭建及常用生产环境配置 | Spring Cloud 3
一.Nacos 概览 Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现.配置管理 ...
- kubernets 集群搭建
kubernets 介绍 kubernetes具有以下特性: 服务发现和负载均衡 Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器,如果进入容器的流量很大, Kubernete ...
最新文章
- MIT博士生、北大校友,利用自监督算法,解决了数据集中这一常见的“难题”...
- matlab数据接口技术,实战MATLAB之文件与数据接口技术
- Android 本地搭建Tomcat服务器供真机测试
- 文件服务器换个用登录,文件服务器迁移 登录
- c# gerber文件读取_懒猪编程实例六:Visual C# 实现外部文件的读取和写入
- Graph cut [转]
- BFC的布局规则以及触发条件
- 【李宏毅机器学习】Transformer(p23) 学习笔记
- 【解决方案】HIKSDK/大华SDK/Ehome协议视频融合平台EasyCVR在危化行业的监控系统搭建应用
- Excel文件对比工具
- “首月0保费”导流模式告终 知名互联网保险平台开始裁员
- jacobi方法 matlab,Jacobi(雅可比)迭代原理与matlab代码
- 【中塘镇】助力儿童,健康成长---创意超轻黏土手工制作主题活动
- 第十二届蓝桥杯D题 货物摆放
- Google Deepmind的自杀开关研究或缓解人工智能恐慌
- 微信十周年了,一文速览六大生态产品成绩单
- 头条、油条商标有多像?Python检测发现相似度高达98.4%!
- SuperVariMag 超导磁体系统 — SVM 系列
- 用python实现简单飞行棋
- 【人因工程】人机交互接口概述
热门文章
- ios 打印 详细错误日志_iOS打印Debug日志的方式
- create-react-app 后需要npm run eject
- VScode Settings Sync同步功能设置
- android7.0如何自定义添加系统服务
- python发送微信消息_python 发送QQ或者微信消息
- java物品类_Java:类中的所有东西都是静态的 – 这是合理的吗?
- delphi基于html页面和xml实现表单填写,如何从xml文件读取数据,并以delphi语言显示在文本框中...
- java类功能的模块化电源_Java9模块化指南
- idea git和svn间切换
- layer 弹出框(iframe层)父子页面传值