DHorse系列文章之操作手册

2023-11-15

在介绍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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DHorse系列文章之操作手册 的相关文章

随机推荐

  • 开发一个APP需要多少钱?

    作为一个移动端开发人员 我们可能被外行朋友或者被客户问及最多的一个问题就是 开发一个APP需要多少钱 不错 这个是大家特别关心的问题 也是互联网公司非常重视的一个问题 因为涉及到自己的成本问题 作为APP开发人员 站在产品经理的角度来给大家
  • windows 2008 32位IIS 服务器转到64位后的各种错误,以及解决方法

    之前在32位IIS服务器上没有问题 发布到64位出现各种错误 请检查以下几项 因各系统不一样 有则检查 无则跳过 重点第4点 1 先安装IIS 后安装 net 4 0环境 否则要重新注册iis windir Microsoft NET Fr
  • 机器学习可视化:模型评估和参数调优

    本篇文章详细阐述机器学习模型评估和参数调优 将主要围绕两个问题来阐述 知其所以然 当你选择的一个机器学习模型运行时 你要知道它是如何工作的 青出于蓝 更进一步 你得知道如何让此机器学习模型工作的更优 模型评估的方法 一般情况来说 F1评分或
  • 第四届蓝桥杯省赛JavaB组第六题三部排序

    标题 三部排序 一般的排序有许多经典算法 如快速排序 希尔排序等 但实际应用时 经常会或多或少有一些特殊的要求 我们没必要套用那些经典算法 可以根据实际情况建立更好的解法 比如 对一个整型数组中的数字进行分类排序 使得负数都靠左端 正数都靠
  • 在阿里云上运行hadoop遇到的50070,9000无法访问问题

    问题 我在阿里云上运行namenode和腾讯云上运行datanode 在hadooop配置完之后 运行hdfs 发现没有namenode 然后查看namenode的日志 日志显示50070端口被占用 9000端口拒绝服务 但是通过natst
  • vue - 实现页面全屏文字水印效果,类似 word 插入的自定义水印(支持单页或整个项目全部页面 “选择性“ 插入,可自定义水印文字、大小样式等,也能动态设置文字)和页面一同渲染,无任何卡顿示例源码

    效果图 代码干净简洁 示例源码注释详细 无任何乱七八糟的代码 本文实现了 单页或整个项目所有页面的全屏水印效果 支持自定义水印文字 可 动态 设置文字内容 你只需要复制本文提供的封装方法 直接在页面中或 App vue 中引入即可生效 只需
  • vue3+element-plus实现表格多选功能(可以清除选项或分页保留选项)

    如图所示 在实际开发中 数据量大的表格基本都添加上了分页功能 每个页面请求的数据回交换更新 第一页的选中效果在跳转至第二页后 如果没有做相关处理 选中项会被清空 具体解决方法如下 在需要处理的表格标签中加上 row key getRowKe
  • 第五章-CSRF漏洞

    第五章 CSRF漏洞 第一节 CSRF原理介绍 1 1 CSRF漏洞定义 CSRF Cross site request forery 跨站请求伪造 也被称为One Click Attack或者Session Riding 通常缩写为CSR
  • k8s组件理解

    一 k8s组件交互关系由下图可大致体现 二 k8s master组件理解 1 kube apiserver组件 kube apiserver Kubernetes kubernets API server 提供了k8s各类资源对象的增删改查
  • EasyTalking微博系统

    EasyTalking微博系统 摘要 随着互联网的迅猛发展 人们的日常生活 学习工作已经离不开网络 人们的生活和工作在未来的生活中将越来越依赖于计算机网络技术的发展 越来越网络化 电子化 虚拟化 便捷化 Internet目前的应用历程和发展
  • 如何const定义一个不可变数组

    有个常见的面试题 我们知道 const是es6中新增用于定义常量 但是对于引用类型来说 const 所说的常量 是指 对应的指针或者说地址是常量 那么 如果我们要求 我们定义的数组里面的元素也是不可改变的呢 先来看现象 const a 1
  • webgl--attribute相关使用

    attribute 是存储限定符 是专门用于向外部导出与点位相关的对象的 这类似于es6模板语法中export vec4 是变量类型 vec4是4维矢量对象 a position 是变量名 之后在js中会根据这个变量名导入变量 这个变量名是
  • [CTSC2008]网络管理Network【树状数组+主席树】

    题目链接 题意 有一棵N个点的树 每个点有对应的权值 现在有这样的操作 0 a b 将a点的权值改成为b k a b 询问a到b的链上第k大的权值是几 我们可以用dfs序的树上差分的方式来解决这个问题 可以发现 求u到v的信息 其实就是求u
  • 【c++】角度与弧度转换

    角度转换为弧度 double angle to radian double degree double min double second double flag degree lt 0 1 0 1 0 判断正负 if degree lt
  • matlab与机器学习(二)程序基本操作(含代码解析)

    备注 之间的为注释内容 注释后面的内容 matlab形成自己的编程风格更有利于简洁的编程界面 图像的初步处理可应用于论文撰写上 文章更有说服力 程序调试有利于发现逻辑问题 都是必备的基础知识 I 清空环境变量及命令 clear all cl
  • Python selenium基础用法详解

    活动地址 CSDN21天学习挑战赛 学习的最大理由是想摆脱平庸 早一天就多一份人生的精彩 迟一天就多一天平庸的困扰 学习日记 目录 学习日记 一 Selenium库介绍 1 Selenium简介 2 Selenium的安装 3 安装浏览器驱
  • RabbitMQ系列(十五)RabbitMQ进阶-SprintBoot集成RabbitMQ使用

    RabbitMQ进阶 SprintBoot集成RabbitMQ使用 文章目录 RabbitMQ进阶 SprintBoot集成RabbitMQ使用 1 构建项目 1 1 Spring Init创建项目 1 2 新建项目包 2 初始化Rabbi
  • 【Chrome】分享几个常用的插件,持续集成

    文章目录 一 准备 打开扩展程序 1 1 方式一 1 2 方式二 1 3 打开开发者模式 二 Chrome应用商店在线安装 需要科学上网 三 离线安装 3 1 离线crx下载地址 3 2 crx方式安装 3 3 加载已解压的扩展程序 方式安
  • 计算机组成原理实验——五、单周期CPU设计

    一 实验目的 掌握指令执行过程的5个阶段 掌握每条指令的数据通路选择 掌握译码器和控制器的功能和实现 掌握数据输入输出处理的方法 实现risc v中RV32I指令的单周期CPU 利用实现的risc v CPU实现平方数 二 实验内容 实现r
  • DHorse系列文章之操作手册

    在介绍DHorse的操作之前 我们先来看一下发布一个系统的流程是什么样的 发布系统的流程 我们以一个Springboot系统为例 来说明一下发布流程 1 首先从代码仓库下载代码 比如Gitlab 2 接着是进行打包 比如使用Maven 3