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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 微服务上云后本地如何联调?

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

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

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

此时为了联调不得不将本地服务也部署到云上,显然这对于开发同学来说及其不方便!那有没有一种简单高效的办法可以让本地服务跟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文件,重新运行命令。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
运维 供应链 安全
《云原生架构容器&微服务优秀案例集》——07 Landing Zone/咨询—— 商龙科技 容器化上云,保障业务稳定运行
《云原生架构容器&微服务优秀案例集》——07 Landing Zone/咨询—— 商龙科技 容器化上云,保障业务稳定运行
135 0
|
运维 Cloud Native 安全
微服务平滑迁移上云最佳实践
本文章内容将从三个方面的内容进行讲解,微服务平滑迁移上云服务。 1、明白微服务上云给企业带来的价值 2、了解微服务迁移过程中带来的挑战 3、掌握通过MSE提供的迁移方案平滑上云
微服务平滑迁移上云最佳实践
|
运维 Cloud Native 安全
微服务平滑迁移上云最佳实践
本文章内容将从三个方面的内容进行讲解,微服务平滑迁移上云服务。 1、明白微服务上云给企业带来的价值 2、了解微服务迁移过程中带来的挑战 3、掌握通过MSE提供的迁移方案平滑上云
微服务平滑迁移上云最佳实践
|
Cloud Native 架构师 微服务
微服务架构上云最佳实践 | 在线直播
企业部署在传统IDC机房或者其他云上的微服务架构,如何能平滑地迁移到阿里云,同时提升整体架构的高可用性和健壮性?阿里云专家为您深入剖析,云原生解决方案和实战经验。
4396 0
微服务架构上云最佳实践 | 在线直播
|
运维 Kubernetes 监控
|
Java 中间件 应用服务中间件
微服务架构上云最佳实践
7月27日,云栖社区、阿里中间件举办了首届阿里巴巴中间件技术峰会,揭秘阿里10年分布式技术干货。在首届阿里巴巴中间件技术峰会上,具有10年研发经验的阿里巴巴中间件技术专家李颜良结合EDAS团队上云两年多以来积累的经验为大家分享了如何进行微服务拆分、微服务架构上云最佳实践以及微服务架构常用的模式,精彩不容错过。
9253 0
|
关系型数据库 测试技术 对象存储
视觉中国:基于容器云的同城双活微服务架构上云实践
本文正在参加阿里云「最佳上云实践」征文大赛(https://yq.aliyun.com/activity/150),欢迎届时给我们投票 视觉中国集团(Visual China Group)创立于2000年6月,是中国领先的视觉影像产品和服务提供商。
13795 0
|
22天前
|
Kubernetes Cloud Native Docker
云原生之旅:从容器到微服务的架构演变
【8月更文挑战第29天】在数字化时代的浪潮下,云原生技术以其灵活性、可扩展性和弹性管理成为企业数字化转型的关键。本文将通过浅显易懂的语言和生动的比喻,带领读者了解云原生的基本概念,探索容器化技术的奥秘,并深入微服务架构的世界。我们将一起见证代码如何转化为现实中的服务,实现快速迭代和高效部署。无论你是初学者还是有经验的开发者,这篇文章都会为你打开一扇通往云原生世界的大门。
|
22天前
|
负载均衡 应用服务中间件 持续交付
微服务架构下的Web服务器部署
【8月更文第28天】随着互联网应用的不断发展,传统的单体应用架构逐渐显露出其局限性,特别是在可扩展性和维护性方面。为了解决这些问题,微服务架构应运而生。微服务架构通过将应用程序分解成一系列小型、独立的服务来提高系统的灵活性和可维护性。本文将探讨如何在微服务架构中有效部署和管理Web服务器实例,并提供一些实际的代码示例。
53 0
|
6天前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
17 3