之前的文章中咱们介绍了怎么经过 Nocalhost 快速开发 Rainbond 上的微服务,介绍了基本的开发流程。

本文将续接上文持续介绍,运用 Nocalhost 开发装备文件 实现以下内容:

  • 一键 Run 和 长途Debug
  • 耐久化装备
  • 开发容器资源约束
  • 端口转发

什么是开发装备?

开发装备是围绕 开发形式 来进行的,例如运用什么镜像来进入 开发形式,是否需求敞开耐久化来保存开发容器的内容,将哪些文件同步到开发容器中,怎么一键调试、一键运行容器内的服务等。 装备了正确且合适的开发装备后,能够在运用 Nocalhost 开发形式 时愈加得心应手。

布置 Rainbond + SpringCloud

接下来持续以上文中的 SpringCloud Pig 为例,调试 Java Maven 服务的 Pig-auth 模块。

项目 Gitee 地址:gitee.com/zhangbigqi/…

布置 Rainbond

这儿就不具体介绍 Rainbond 的装置,请参阅 基于Linux装置Rainbond。

布置 SpringCloud

咱们在 Rainbond 内对接了开源使用商铺后,在开源使用商铺内查找 Spring Cloud Pig 装置 3.5.0 版本。

来自使用商铺装置使用组件的英文称号是主动生成的字符串,需求咱们设置一下组件的英文称号(Deployment Name),经过 Nocalhost 连接到集群时能够很直观的分清楚 Deployment 对应的组件。

微服务远程Debug,Nocalhost + Rainbond微服务开发第二弹

Nocalhost 对接 Rainbond

  1. 装置 Nocalhost JetBrains Plugin 插件,请参阅文档 装置Nocalhost JetBrains Plugin 插件。

  2. 获取 K8s Kubeconfig,请参阅文档 获取 Kubeconfig 文件。

  3. pig 命名空间下,找到作业负载 pig-auth 右击并挑选 Dev Config (开发装备)

微服务远程Debug,Nocalhost + Rainbond微服务开发第二弹

  1. 将以下装备文件复制到 Dev Config 中。
# Deployment Name
name: pig-auth
serviceType: deployment
containers:
	# Deployment 主容器称号
  - name: auth
    dev:
    	# 开发镜像,该镜像包含了 Java Maven 环境
      image: registry.cn-hangzhou.aliyuncs.com/zqqq/maven:3.8.6-openjdk-8
      # 默许终端为 bash
      shell: bash
      # Rainbond 供给的 StorageClass Name
      storageClass: rainbondvolumerwx
      # 装备开发容器资源
      resources:
        limits:
          memory: 4096Mi
          cpu: "2"
        requests:
          memory: 2048Mi
          cpu: "1"
      persistentVolumeDirs:
      	# Maven 依靠包缓存途径,配合 storageClass 一同食用
        - path: /root/.m2/repository
          capacity: 10Gi
      command:
        # 一键发动指令,装置依靠包和发动 pig-auth 子模块
        run:
          - mvn
          - install
          - '&&'
          - mvn
          - spring-boot:run
          - -pl
          # 指定子模块发动
          - pig-auth
        # 一键 Debug 指令,装置依靠包和 Debug pig-auth 子模块
        debug:
          - mvn
          - install
          - '&&'
          - mvn
          - spring-boot:run
          - -pl
          # 指定子模块发动
          - pig-auth
          # Java Debug 指令
          - -Dspring-boot.run.jvmArguments=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
      debug:
        # 长途端口,对应Debug指令中的 address=5005
        remoteDebugPort: 5005
        # 挑选 Java 语言
        language: java
      # 热加载
      hotReload: true
      # 文件同步
      sync:
        type: send
        mode: gitIgnore
        deleteProtection: true
      # 端口转发,转发容器内的3000端口到本地3999
      portForward:
        - 3999:3000

一键 Run

  1. 右击作业负载 pig-auth
  2. 挑选 Remote Run。
  3. Nocalhost 会主动进入 DevMode 并执行 Remote Run。

微服务远程Debug,Nocalhost + Rainbond微服务开发第二弹

一键 Debug

  1. 右击作业负载 pig-auth
  2. 挑选 Remote Debug。
  3. Nocalhost 会主动进入 DevMode 并执行 Remote Debug。
  4. 在代码中打上断点,建议请求,进入 IDE Debug 形式。

微服务远程Debug,Nocalhost + Rainbond微服务开发第二弹

耐久化装备

在开发时,咱们希望耐久化的文件大多数都是 依靠包 日志,本篇文章中也是缓存了 Java 的依靠包。

rainbondvolumerwx 是 Rainbond 默许供给的存储类,填写以下装备后会在当时命名空间下主动创建 PVC,如下:

storageClass: rainbondvolumerwx
persistentVolumeDirs:
  - path: /root/.m2/repository
    capacity: 10Gi

微服务远程Debug,Nocalhost + Rainbond微服务开发第二弹

容器资源约束

约束开发容器的资源,限额能让服务器的资源利用最大化,能够经过以下开发装备修正:

resources:
  limits:
    memory: 4096Mi
    cpu: "2"
  requests:
    memory: 2048Mi
    cpu: "1"

端口转发

转发容器端口到本地,能够经过以下开发装备修正:

portForward:
  - 3999:3000 		# 转发容器 3000 端口到本地 3999 端口

最后

当然 Nocalhost 能够同时调试多个微服务,同样的方式只需修正装备文件中的 Deployment Name 和 Containers Name 以及微服务的子模块。

Nocalhost 还有一些开发装备文中没讲到的,比方:开发环境变量、文件同步的两种形式 pattern gitignore 等等,而且 Nocalhost 支撑多种语言,Java 只是其中一种,小伙伴们能够自行探索。

Nocalhost + Rainbond 让开发、布置愈加高效、便捷。