作者 | 纳海  阿里巴巴高级开发工程师

**导读:**上篇我们介绍了应用成功上云后,面对应用的管理,如何做可灰度的线上发布,那么当云上的应用行为不符合预期的时候,您会怎么处理呢?修改代码,打包,部署,然后查看日志?或者开远程调试端口远程调试?

相关文章推荐:

  • 《SpringCloud 应用在 Kubernetes 上的最佳实践 —— 开发篇》
  • 《SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(开发部署)》
  • 《SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(工具部署)》
  • 《SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(可灰度)》

前言

当云上的应用行为不符合预期的时候,您会怎么处理呢?修改代码,打包,部署,然后查看日志?或者开远程调试端口远程调试?

这些步骤都比较繁琐。现在 EDAS 提供了端云联调的工具,让您在本地就可以启动应用并且能跟云端服务联调。只需三个步骤,您就可以在本地获得跟云端服务联调的能力,下面我们一起来体验吧!

打开调试开关

默认情况下,EDAS 端云联调功能是关闭的,只有打开命名空间中的调试开关后,本地服务才能跟云端联调。您可以只对开发环境的命名空间开启端云联调,而对其他环境保持关闭,这样既方便本地开发,也保证其他环境服务稳定。

EDAS 命名空间的默认关闭状态如下所示,打开开关即可启用此功能:

准备可远程访问的节点

EDAS 端云联调只需一个可远程 SSH 的 Kubernetes 集群节点即可,如果您已具备这样的节点可跳过此节,否则可参考如下步骤来进行配置。

在 Kubernetes 集群内任意选择一个机器节点,进入 ECS 实例详情,绑定一个弹性公网 IP:

绑定弹性公网 IP 后,需要设置实例安全组规则以放通 SSH 端口的流量。进入实例安全组,设置入方向规则允许访问 SSH 的 22 端口:

上图中的授权对象 0.0.0.0/0 表示 22 端口对公网开放,您可以根据本地网络的公网出口 IP 来设置授权对象,只允许您所在的网络访问实例的 22 端口,进一步提升安全系数。

最后,设置实例登录密码并重启即可完成 SSH 配置:

配置插件

现在我们来配置 IDE 插件来启用端云联调。此功能支持 Intellij IDEA 和 Eclipse 两种 IDE ,配置流程相同,下面以 Intellij IDEA 来说明配置参数。

打开 IDE 配置页面,选择 Alibaba Cloud Toolkit -> EDAS 页面,勾选 Join EDAS Registry 选项,如下所示:

参数说明如下:

  • Region:您的 Kubernetes 集群及服务所在区域;
  • Namespace:EDAS命名空间,如未看到所需的命名空间,请参考上面的《打开调试开关》小节打开端云联调功能;
  • Gateway Host:可远程 SSH 的节点,请参考上面的《准备可远程访问的节点》小节来配置;
  • Username:可远程 SSH 的账号名。这里可填入一个不存在的账号,插件会进行检测,如不存在则进行创建;
  • Password:可远程 SSH 的账号密码。如果账号不存在,则插件使用此密码来创建账号;
  • Server Port:您的 Spring Cloud 项目服务端口。

填入以上信息后,点击页面上的 Add SSH Rule 按钮进行配置,插件会提示授予 root 权限来进行代理配置:

授予 root 权限,点击 Add 完成配置。至此,您已完成全部的配置流程,团队成员可直接复用上述配置的 SSH 的节点、账号和密码,无需重新配置。

启动应用进行联调

现在我们跟平常一样启动本地应用,IDE 会提示当前处于端云联调状态:

在此状态下,本地服务能正常调用云端服务,云端服务也能调用本地服务。另外,您也可以使用 IDE 的调试模式来启动本地应用,端云联调同样生效。

结语及后续

在本篇文章中,我们介绍了 EDAS 端云联调工具,借助此工具本地服务能跟云端服务进行联调。端云联调对于可重现的问题来说是一个非常高效的解决方案,但不适用于如下问题:

  • 已发生的问题;
  • 不能稳定重现的问题;

对于这样的问题,我们有更好用的解决方案:APM 监控。通过 APM 监控,您可以方便的查看分析系统异常、服务异常、接口异常等各种异常信息,下一讲我们将详细介绍《APM 监控》。

首届云原生微服务大会

首届云原生微服务大会 PC 端地址:https://developer.aliyun.com/topic/microservices2020#/

“阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的公众号。”

SpringCloud 应用在 Kubernetes 上的最佳实践 — 诊断(线上联调)相关推荐

  1. bk3432开发的应用实例_SpringCloud应用在Kubernetes上的最佳实践—诊断(线上联调)...

    作者 | 纳海 阿里巴巴高级开发工程师 导读:上篇我们介绍了应用成功上云后,面对应用的管理,如何做可灰度的线上发布,那么当云上的应用行为不符合预期的时候,您会怎么处理呢?修改代码,打包,部署,然后查看 ...

  2. SpringCloud 应用在 Kubernetes 上的最佳实践 —— 高可用(容量评估)

    作者 | 牛兔 导读:本文是<SpringCloud 应用在 Kubernetes 上的最佳实践>系列文章的第 11 篇,从前面两期开始我们进入到了高可用专题,分别介绍了流量防护和故障演练 ...

  3. SpringCloud 应用在 Kubernetes 上的最佳实践 — 高可用(熔断)

    作者 | 宿何 导读:前几篇我们主要站在应用发布的场景,描述在发布过程中会遇到的灰度.监控.回滚.优雅上下线等保障发布能顺利进行的注意事项.作为一个程序员 GG,可灰度的发布顺利上线往往意味着准点下班 ...

  4. SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(优雅上下线)

    作者 | 骄龙 导读:本篇是<SpringCloud 应用在 Kubernetes 上的最佳实践>系列文章的第八篇,主要介绍了如何做到流量的无损上/下线.更多相关文章阅读可查看文末. 前言 ...

  5. SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(可回滚)

    作者 | 长门 **导读:**本篇是<SpringCloud 应用在 Kubernetes 上的最佳实践>系列文章的第七篇,主要介绍了新功能上线时,如何尽快减少对线上用户的影响?发布系统需 ...

  6. SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(可监控)

    作者 | 骐羽 阿里巴巴技术专家 导读:本篇是"SpringCloud 应用在 Kubernetes 上的最佳实践"系列文章的第六篇,主要介绍了如何保障生产环境服务稳定,做到随时发 ...

  7. SpringCloud 应用在 Kubernetes 上的最佳实践 —— 高可用(弹性伸缩)

    作者 | 三未 前言 弹性伸缩是一种为了满足业务需求.保证服务质量.平衡服务成本的重要应用管理策略.弹性伸缩让应用的部署规模能够根据实时的业务量产生动态调整,在业务高峰期扩大部署规模,保证服务不被业务 ...

  8. Spring Cloud 应用在 Kubernetes 上的最佳实践 — 高可用(混沌工程)

    作者 | 穹谷 导读:从上篇开始,我们进入到了高可用的章节,上篇提到的熔断能力,是历年保障大促当天晚上整个系统不被洪峰流量打垮的法宝.本文将重点介绍为什么我们要做混沌工程以及如何使用 ChaoBlad ...

  9. SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(可灰度)

    作者 | 白寂  阿里云开发工程师 导读:前三篇文章我们介绍了应用的开发和部署,那么在应用成功上云后,我就要面对应用的管理话题了,这一篇我们来看看如何做线上发布,并且是可灰度的. 相关文章推荐: &l ...

最新文章

  1. mysql5.5.21安装图解_Windows系统安装MySQL5.5.21图解教程
  2. Ubuntu中python调用SimpleITK来显示图像
  3. Spring MVC 入门(一)
  4. iOS 抓包工具 charles工具
  5. WPF xml配置文件里面的大于小于号转义
  6. Google大佬手把手教你从数据中挖掘价值:好产品是怎样炼成的
  7. python 直线过滤掉不在边缘上的点_不存在所谓的机器学习平台
  8. 米勒机会信托或将通过GBTC投资比特币
  9. SAP License:统驭科目的集成修改
  10. 可执行jar包的maven配置
  11. Mac电脑用CrossOver安装的Windows软件在哪?
  12. 使用 C++11 编写类似 QT 的信号槽——上篇
  13. jmeter无法启动的解决办法
  14. android widget ViewFlipper
  15. SPSS入门教程—如何绘制高低图
  16. HEVC Cabac解码
  17. k8s cheat sheet
  18. Axure动态面板使用,简单的交互
  19. 解决阿里云此手机号码绑定的账户数已达上限的方法
  20. java nio rewind_java.nio.ByteBuffer 以及flip,clear及rewind区别

热门文章

  1. 【MySQL】记录 Navicat连接 docker mysql 容器,备份docker mysql 注意事项
  2. 【prometheus】alertmanager 配置文件示例
  3. python中的encode()和decode()函数
  4. html安装网卡驱动,如何手动安装无线网卡驱动,网卡驱动安装教程
  5. 二级分类_iOS 13.3正式版,增加信息联系人二级分类,支持联通VoLTE功能
  6. 并发基础篇(一) 线程介绍
  7. 2021-9-下旬 数据结构-线性表-队列-java代码实现(复习用)
  8. SSM整合及CRUD实现
  9. python3模拟登陆人人网(requests)
  10. HBase 0.98 分布式集群安装详解