DHorse操作手册

dhorse,操作手册 · 浏览次数 : 597

小编点评

**发布系统的流程:** 1. 从代码仓库下载代码。 2. 进行打包。 3. 如果使用k8s作为编排,制作镜像。 4. 上传镜像到远程仓库。 5. 下载镜像并编写Deployment文件部署到云集群。 6. 创建项目、版本、环境。 7. 进行发布。 8. 创建环境。 9. 在“部署历史”菜单下查看部署记录。 10. 在“副本管理”菜单下查看Pod的相关信息。 11. 在“操作”列点击“部署”按钮,选择版本,并点击“确认部署”。 12. 在“部署历史”菜单下查看部署记录。 13. 在“副本管理”菜单下访问服务,通过“副本IP:端口”进行访问。 14. 在集群外部直接访问副本的IP。

正文

在介绍DHorse的操作之前,我们先来看一下发布一个系统的流程是什么样的。

发布系统的流程

我们以一个Springboot系统为例,来说明一下发布流程。
1.首先从代码仓库下载代码,比如Gitlab;
2.接着是进行打包,比如使用Maven
3.如果要使用k8s作为编排,还需要把步骤2产生的包制作成镜像,比如使用Docker
4.上传步骤3的镜像到远程仓库,比如Harhor;
5.最后,下载镜像并编写Deployment文件部署到云集群,比如k8s;
从以上步骤可以看出,发布需要的工具和环境至少包括:代码仓库(Gitlab)、打包环境(Maven)、镜像制作(Docker)、镜像仓库(Harbor)、云集群(k8s)等;
在DHorse系统里,有些环境是对于用户来说是无需感知,因为已经做了集成,如:打包和镜像制作,可以参考文章:《DHorse系列文章之镜像制作》和《DHorse系列文章之maven打包》。其他的则需要配置,下面就一一介绍。

DHorse操作说明

代码仓库配置

如图1所示:
在这里插入图片描述图1

镜像仓库配置

如图2所示:
在这里插入图片描述图2

Maven配置

如图3所示:
在这里插入图片描述图3
在这里,可以指定打包时的Java版本信息,如果不指定,则默认使用DHorse系统所在的环境。

集群配置

进入“集群管理”菜单,可以进行添加集群操作,假如已经部署好k8s集群,则可以添加到DHorse,如图4所示:
在这里插入图片描述图4
我们可以通过如下方式生成k8s的认证令牌:

kubectl create serviceaccount "k8sadmin-dhorse" -n kube-system
kubectl create clusterrolebinding "k8sadmin-dhorse" --clusterrole=cluster-admin --serviceaccount=kube-system:k8sadmin-dhorse
secret=$(kubectl get -n kube-system serviceaccounts "k8sadmin-dhorse" -o jsonpath='{.secrets[0].name}')
kubectl get -n kube-system secrets $secret -o jsonpath='{.data.token}' | base64 -d

也可以开启日志收集功能,但是首先需要配置Dhorse安装目录下的conf/filebeat-k8s.yml文件,进行filebeat的配置。
在集群管理功能里,同时也提供了对命名空间管理的功能,如图5所示:
在这里插入图片描述图5
可以进行创建和删除命名空间。
完成以上配置以后,接下来我们就可以创建项目、创建版本、创建环境,然后进行发布了。

创建项目

在“项目管理”菜单下,可以添加项目操作,这里以添加一个Springboot项目为例进行说明,如图6、图8所示:
在这里插入图片描述图6
其中,代码仓库地址是对应代码仓库定义的项目路径或项目编号,比如GitLab项目编号如图7所示:
在这里插入图片描述图7

在这里插入图片描述图8

添加项目完成以后,就可以在“发布管理”菜单下看到分支信息,如图9所示:
在这里插入图片描述图9

可以看出,在分支列表里可以分别对每个分支进行“构建版本”操作,我们以对master分支进行构建版本为例,如图10所示:
在这里插入图片描述图10

然后进入“版本列表”菜单,可以看到产生了一条版本记录,同时也可以查看该版本的构建日志,如图11所示:
在这里插入图片描述图11

接下来,我们就可以创建一个环境,然后使用刚才构建的版本发布该环境。

发布项目

进入“环境管理”菜单,然后进行添加环境操作,如图12所示:
在这里插入图片描述图12

保存之后,“环境管理”列表里会出现一条环境记录,如果13所示:
在这里插入图片描述图13

接着,我们可以在“操作”列点击“部署”按钮,如图14所示:
在这里插入图片描述图14

选择刚才的版本,并点击“确认部署”。此时,进入到“部署历史”菜单下,可以看到产生了一条部署记录,同时可以查看该记录的日志,如图15所示:
在这里插入图片描述图15

等待部署完成以后,进入“副本管理”菜单,可以看到Pod的相关信息,如果16所示:
在这里插入图片描述图16

至此,一个完整的发布流程完成了。那么该如何访问hello项目的服务呢?

访问服务

集群内访问

假如hello项目里有一个/hello的api。

  1. 访问单个副本的服务
    通过“副本IP:端口”进行访问,该方式在副本或Node节点都可以访问通,如图16所示的IP,访问示例:http://10.32.1.153:8080/hello
  2. 通过负载均衡
    DHorse在部署项目以后,会默认为项目启动一个ClusterIP的service服务,可以通过“项目名称.命名空间:服务端口”来访问服务,该访问只能在副本里进行,示例如:http://hello.default:8080/hello
    集群内服务之间的调用,推荐该方式。

集群外访问

两种方式:

  1. 通过创建NodePort或LoadBalancer,目前DHorse不支持,如果需要可以手动在集群内创建;
  2. 打通集群内外的网络,该方式需要运维的支持,如:通过静态路由转发等。集群内外网络互通以后,在集群外部就可以直接访问副本的IP了。

如需更多了解,请访问DHorse

与DHorse操作手册相似的内容:

DHorse操作手册

在介绍DHorse的操作之前,我们先来看一下发布一个系统的流程是什么样的。 发布系统的流程 我们以一个Springboot系统为例,来说明一下发布流程。 1.首先从代码仓库下载代码,比如Gitlab; 2.接着是进行打包,比如使用Maven; 3.如果要使用k8s作为编排,还需要把步骤2产生的包制作

DHorse系列文章之maven打包

插件打包 这种方式是平时最常用的,首先要下载并安装maven环境,然后在被打包的项目中引入插件,有各种各样的打包插件,比如springboot自带插件: org.springframework.boot spring-b

DHorse系列文章之镜像制作

DHorse系列文章之镜像制作 制作镜像常用的工具 使用Docker制作镜像 1.使用docker commit制作 该命令使用比较简单,可以自行网上搜索教程。 2.使用Dockerfile制作 这种方式,需要编写如下的Dokerfile文件: FROM openjdk:openjdk:13-jdk

DHorse的链路追踪

目前,DHorse的链路追踪功能是通过SkyWalking来实现。实现原理是DHorse在部署应用时,通过指定SkyWalking的Agent来收集服务的调用链路信息。下面就来具体看一下DHorse如何使用Agent的功能。 链路追踪配置 在“系统配置”菜单,打开“链路追踪模板”菜单,如图1所示:

DHorse的配置文件

首先看一下DHorse的配置文件,如下: # # 本软件遵守Apache开源许可协议2.0, # 详情见:http://www.apache.org/licenses/LICENSE-2.0 # # # Common # #服务端口,默认8100 #server.port: 8100 #系统数据文件

DHorse日志收集原理

实现原理 基于k8s的日志收集主要有两种方案,一是使用daemoset,另一种是基于sidecar。两种方式各有优缺点,目前DHorse是基于daemoset实现的。如图1所示: 图1 在每个k8s集群中启动一个daemoset组件,即Filebeat的服务,监控/var/log/container

DHorse v1.3.2 发布,基于 k8s 的发布平台

## 版本说明 ### 新增特性 * 构建版本、部署应用时的线程池可配置化; ### 优化特性 * 构建版本跳过单元测试; ### 解决问题 * 解决Vue应用详情页面报错的问题; * 解决Linux环境下脚本运行失败的问题; * 解决下载Maven安装文件失败的问题; ### 升级说明 下载v1.

DHorse v1.2.1 发布,基于k8s的发布平台

# 综述 DHorse是一个简单易用、以应用为中心的云原生DevOps系统,具有持续集成、持续部署、微服务治理等功能,无需安装依赖Docker、Maven、Node等环境即可发布Java、Vue、React应用,主要特点:部署简单、操作简洁、功能快速。 # 优化内容 * 优化jvm指标收集时dhor

DHorse v1.3.0 发布,基于k8s的发布平台

# 综述 DHorse是一个简单易用、以应用为中心的云原生DevOps系统,具有持续集成、持续部署、微服务治理等功能,无需安装依赖Docker、Maven、Node等环境即可发布Java、Vue、React应用,主要特点:部署简单、操作简洁、功能快速。 # 新增特性 * 增加prometheus的配

DHorse v1.4.0 发布,基于 k8s 的发布平台

版本说明 新增特性 提供Fabric8客户端操作k8s(预览)的功能,可以通过指定-Dkubernetes-client=fabric8参数开启; Vue、React应用增加Pnpm、Yarn的构建方式; 支持Go、Flask、Django、Nuxt应用部署; 优化特性 副本指标数据保存为3天; 部