微服务上云后本地如何联调?

简介: 微服务上云后本地如何联调?

大家好,我是飘渺!今天给大家带来云原生实战系列的第三十五篇,微服务上云后本地如何联调?

当我们将微服务上云以后在开发过程中会遇到这样的场景:

生产者服务部署到了云上,消费者服务还处于开发阶段,现在开发人员想在本地启动消费者服务调用云上生产者服务进行接口调试,很显然由于生产者和消费者处于不同的网络区间无法互相访问,在应用层的表现就是:会出现服务调用超时的异常,如下所示

此时为了联调不得不将本地服务也部署到云上,显然这对于开发同学来说及其不方便!那有没有一种简单高效的办法可以让本地服务跟Kubernetes集群中的服务互通呢?这就是今天要解决的问题!

解决方案嘛其实也很简单,网上已经有现成工具,那就是Kt Connect!


Kt Connect


Kt Connect是阿里巴巴开源的一款云原生协同开发测试解决方案,目前包含以下几个核心功能,参加官方文档。https://alibaba.github.io/kt-connect


核心功能

  • 本地直接访问Kubernetes集群内网

通过KtConnect可以直接连接Kubernetes集群内部网络,在不修改代码的情况下完成本地联调测试

  • 本地解析Kubernetes服务内网域名

直接使用服务名解析服务Cluster IP,本地开发也能获得真正的云原生体验

  • 重定向集群服务流量到本地

将集群中的流量转移到本地,使得集群中的服务无需额外配置即可访问本地服务

  • 测试环境多人协作互不干扰

通过自动或手工设定流量规则,在不影响测试环境正常使用的情况下,仅将指定请求重定向到本地

  • 支持Windows/MacOS/Linux开发环境

不同的操作系统,相同的使用方式,让所有开发者轻松共享Kubernetes网络互通的便利


Kt Connect 安装使用


下面我们以windows为例,介绍一下Kt Connect的安装使用。

1. 安装

1、下载kubectl并解压放入D盘

在此链接中下载kubectl的可执行文件 ,注意下载对应我们线上kubernetes版本的kubectl ,如果想要下载对应其它版本,可以修改上面链接将版本号改为对应的即可 。

2、配置环境变量

将Kt Connect的解压目录D:\kube\添加到PATH环境变量中

3、执行kubectl version命令查看已安装的 kubectl 版本号


2. 连接配置

1、 从Kubernets master节点下载集群配置文件kubeconfig

此文件位于master节点中的$HOME/.kube/config

2、将C盘当前用户根目录下创建.kube文件夹,并将集群配置文件kubeconfig拷贝到此处


3. 连接集群

现在我们想连接kubernetes集群中namespace为workbench的项目,可以按照如下操作进行

1、运行命令连接指定集群

#xx为指定项目命名空间
 ktctl --namespace=workbench connect

当连接上指定namespace后,可以在kubesphere平台看到本地创建的容器


2、 当连接上以后就可以直接在本地访问云上的接口了

直接通过dns访问服务接口

使用postman调本地接口通过feign调用集群服务,有正常响应


4. 可能出现的问题

运行 ktctl --namespace=workbench connect 可能会出现hosts权限拒绝

解决方案

方法1:修改C盘 C:\Windows\System32\drivers\etc\ 此路径下hosts文件权限

在 hosts文件上点击鼠标右键,在弹出的选项中,点击打开“属性” , 选中用户后,点击编辑,勾选上下方的“修改”和“写入”权限,完成后,点击右下角的“应用”,再重新运行命令。

方法2:如果方法1不行,在本地新建一个记事本文件,将 hosts文件打开全选再复制进新建的记事本中,将记事本名修改成hosts替换进C:\Windows\System32\drivers\etc\路径下hosts文件,重新运行命令。

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
7月前
|
存储 运维 数据安全/隐私保护
微服务应用运维入门
微服务应用运维入门
|
4天前
|
运维 应用服务中间件 调度
微服务容器化的运维
【2月更文挑战第27天】
|
7月前
|
运维 负载均衡 监控
微服务应用运维
微服务应用运维
|
存储 前端开发 Java
[微服务架构选型 ]微服务架构 - 适合您的软件开发吗?
[微服务架构选型 ]微服务架构 - 适合您的软件开发吗?
|
JavaScript 前端开发 Java
微服务间的测试策略
微服务间的测试策略
107 0
微服务间的测试策略
|
存储 测试技术 网络架构
微服务的测试策略
微服务的测试策略
166 0
微服务的测试策略
|
缓存 运维 分布式计算
架构设计70-质量管理10-微服务故障
架构设计70-质量管理10-微服务故障
125 0
架构设计70-质量管理10-微服务故障
|
运维 监控 安全
持续改进微服务
公司构建大中台之后的事情。
89 0
|
SpringCloudAlibaba 中间件 数据库
关于微服务架构业务思考
关于微服务架构业务思考
159 0