本文将介绍如何应用 Nocalhost 疾速开发 Rainbond 上的微服务利用的开发流程以及实际操作步骤。
Nocalhost 能够间接在 Kubernetes 中开发利用,Rainbond 能够疾速部署微服务项目,无需编写 Yaml,Nocalhost 联合 Rainbond 减速咱们的微服务开发效率。
一. 简介
Nocalhost 是一款开源的基于 IDE 的云原生利用开发工具:
- 间接在 Kubernetes 集群中构建、测试和调试应用程序
- 提供易于应用的 IDE 插件(反对 VS Code 和 JetBrains),即便在 Kubernetes 集群中进行开发和调试,Nocalhost 也能放弃和本地开发一样的开发体验
- 应用即时文件同步进行开发:即时将您的代码更改同步到远端容器,而无需重建镜像或重新启动容器。
Rainbond 是一款云原生利用治理平台:
- 应用简略,不须要懂容器、Kubernetes 和底层简单技术,反对治理多个 Kubernetes 集群,和治理企业应用全生命周期。次要性能包含利用开发环境、利用市场、微服务架构、利用交付、利用运维、利用级多云治理等。
二. 本地 + Rainbond 开发微服务
以前咱们在本地 + Rainbond 开发微服务时,要开发的模块咱们运行在本地,其余模块运行在 Rainbond 上,咱们通过 Rainbond 的网关与本地进行通信、联调。
这样会遇到一些问题:
- 多人合作开发联调艰难
- 本地环境差异化
- 无奈通过注册核心 (Nacos) 调用其余微服务
- 近程 Debug 较难
- 受限于本地资源
三. 应用 Nocalhost + Rainbond 开发微服务
当初咱们通过 Nocalhost + Rainbond 开发微服务时,所有服务都运行在 Rainbond 上,当要开发时本地 Vscode 直连到 Rainbond 组件中,并与本地代码实时同步到 Rainbond 组件中。多人开发联调时,可通过 Rainbond 内置的 Service Mesh 进行服务之间联调。
应用 Nocalhost 开发,能够解决本地开发时遇到的问题:
- 多人联调开发更便捷
- 服务都运行在 Rainbond 上,不再受限于本地
- 与生产环境更靠近
- 近程 Debug
- 通过注册核心 (Nacos) 调用其余微服务组件
四. 实际操作步骤
Nocalhost 目前反对两种开发模式:
- Repliace DevMode
- Duplicate DevMode
本篇将次要介绍 Replace DevMode,当进入 Replace DevMode 时,Nocalhost 会对 组件 执行以下操作:
- 将正本数缩减为 1
- 替换容器的镜像为开发镜像
- 减少一个 sidecar 容器。
- 转发一个本地端口到文件同步服务器。
- 启动本地文件同步客户端。
- 关上近程终端。
4.1 装置 Nocalhost 插件
Nocalhost 反对 VScode
JetBrains
,这里咱们次要介绍 VScode 插件装置参考官网文档。
- 关上 VScode,点击左侧的
Extension
按钮 图标 - 在搜寻框中输出
Nocalhost
抉择Nocalhost 插件
,并点击 Install 按钮
4.2 装置 Rainbond
咱们抉择 基于主机装置 Rainbond
4.3 Nocalhost 对接 Rainbond 集群
- 获取
kubeconfig
文件,进入 Rainbond 集群视图 -> 点击节点配置 -> kubeconfig
- 咱们将
kubeconfig
文件复制到本地并保留为yaml
文件。 - 关上 Vscode,点击按钮 <img src=”https://nocalhost.dev/zh-CN/img/icons/logo-light.svg” width=”3%” />,关上 Nocalhost 插件,抉择 Connect to Cluster,抉择咱们
kubeconfig
文件的门路,点击 Add Cluster,增加集群。 - 增加实现后,如下图:
<img src=”https://static.goodrain.com/wechat/nocalhost/6.png” width=”30%” />
4.4 在 Rainbond 上部署 Spring Cloud 微服务
- 这里抉择从开源利用商店装置 Spring Cloud Pig 微服务组件,在利用商店中搜寻 Pig 进行装置。
- 部署实现后,成果如下:
4.5 进入 Nocalhost 开发模式
下面咱们曾经在本地 Vscode 中对接好了集群,并且也曾经在 Rainbond 中装置了 Spring Cloud Pig 微服务,那么接下来咱们在本地 Vscode 中抉择其中一个组件进行开发,这里为了成果更显著,抉择开发 pig-ui
组件。
Spring Cloud Pig 后端
Spring Cloud Pig 前端
4.5.1 克隆 Pig-ui 代码到本地
git clone https://gitee.com/zhangbigqi/pig-ui
4.5.2 启动本地开发
关上 Vscode,点击按钮 <img src=”https://nocalhost.dev/zh-CN/img/icons/logo-light.svg” width=”3%” />,找到咱们的 Pig-ui 组件,因为该利用是从开源利用商店中装置,Deployment 名称是主动生成的字符串,咱们须要在组件中查问下。
<img src=”https://static.goodrain.com/wechat/nocalhost/10.png” width=”30%” />
咱们点击旁边的🔨进入开发模式,
- 提醒抉择容器,咱们抉择
gred5f1c
这个容器,剩下那个容器是 Rainbond 的 Mesh 容器,用于外部通信,不可替换 - 提醒指定源代码目录,抉择咱们刚刚克隆下来的代码目录。
- 期待片刻后,会默认关上远端容器的终端界面并且容器内的文件会与本地实时同步,如下:
4.5.3 启动我的项目
-
装置我的项目依赖,执行
npm install
-
运行我的项目
npm run dev
启动后成果如下,容器内端口为 80
- 开启端口转发,点击按钮 <img src=”https://nocalhost.dev/zh-CN/img/icons/logo-light.svg” width=”3%” />,找到咱们的 Deployment,右键抉择 Port Forward,Add Port Forward,输出
38000:80
将容器的 80 端口转发到本地的 38000 端口。
<img src=”https://static.goodrain.com/wechat/nocalhost/14.png” width=”30%” />
- 通过
http://localhost:38000
能够拜访到页面,并且也能够失常登录。
4.5.4 批改代码查看成果
下面曾经演示了如果通过本地拜访到远端容器内的服务,接下来咱们批改代码看下成果。
批改 src/page/wel.vue
,新增一段代码,保留。能够发现,当咱们保留的时候,终端中就主动重启了,与本地开发成果统一。
文件的批改会实时同步到容器中。
刷新页面http://localhost:38000
,能够看到批改的内容已失效。
写在最初
通过以上的实际步骤,咱们曾经能够通过 Nocalhost 开发 Rainbond 上的微服务利用,解脱本地开发,进入云原生疾速开发,晋升咱们的开发效率。
本文仅介绍了根本的开发,还能够为我的项目配置 Nocalhost 开发配置 等等,小伙伴们能够自行摸索。