使用DHorse发布SpringBoot项目到K8S

前言

在介绍DHorse的操作之前,先来介绍一下使用k8s发布应用的步骤,以SpringBoot应用为例进行说明。

1.首先从代码仓库下载代码,比如GitLab;

2.接着进行构建,比如使用Maven;

3.如果要使用k8s作为编排,还需要把步骤2产生的包制作成镜像,比如使用Docker;

4.上传步骤3的镜像到远程仓库,比如Harhor;

5.最后,下载镜像并编写Deployment文件部署到云集群,比如k8s;

DHorse简化了以上步骤的流程,使用它部署应用变得更简单,下面详细介绍。

DHorse操作说明

配置代码仓库

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

图1

配置镜像仓库

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

图2

配置集群

进入“集群管理”菜单,可以进行添加集群操作,假如已经部署好k8s集群,则可以添加到DHorse,如图4所示:
在这里插入图片描述

图4

可以通过如下方式生成k8s的认证令牌:

  1. 小于1.24版本
kubectl create serviceaccount dhorse-admin -n kube-system
kubectl create clusterrolebinding dhorse-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dhorse-admin
secret=$(kubectl get -n kube-system serviceaccounts dhorse-admin -o jsonpath='{.secrets[0].name}')
kubectl get -n kube-system secrets $secret -o jsonpath='{.data.token}' | base64 -d
  1. 大于等于1.24版本
kubectl create serviceaccount dhorse-admin -n kube-system
kubectl create clusterrolebinding dhorse-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dhorse-admin
kubectl create token dhorse-admin -n kube-system --duration 867240h

创建应用

在“应用管理”菜单下,以添加SpringBoot应用为例(https://jihulab.com/tiandizhiguai/hello-springboot),如图6、图7所示:
在这里插入图片描述

图6

在这里插入图片描述

图7

其中,图6中的“代码仓库地址”是对应代码仓库定义的项目路径或项目编号,比如GitLab的项目ID如图8所示:
在这里插入图片描述

图8

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

图9

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

图10

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

图11

特别注意,第一次构建版本时由于Maven需要下载依赖的包,速度会比较慢,需要耐心等待。接下来,就可以创建一个环境,然后使用刚才构建的版本发布该环境。

发布服务

进入“环境管理”菜单,然后进行添加环境操作,如图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

  1. 通过负载均衡

DHorse在部署应用以后,会为每个应用启动一个ClusterIP的service服务,那么就可以在副本里通过“应用名称-环境标识.命名空间:服务端口”的形式来访问其他应用的服务,访问示例如:http://hello-qa.default:8080/hello ,集群内服务之间的调用,推荐该方式。

集群外访问

两种方式:

  1. 通过创建NodePort或LoadBalancer,目前DHorse不支持,如果需要可以手动在集群内创建;

  2. 打通集群内外的网络,该方式需要运维的支持,如:通过静态路由转发等。集群内外网络互通以后,在集群外部就可以直接访问副本的IP了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/154701.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探伤仪的曲线

超声波检验DAC曲线、AVG曲线的区别、使用及制作方法 一、 概念 1.1 DAC曲线 DAC距离波幅曲线是描述某一确定反射体回波高度随距离变化的关系曲线。因此,AVG曲线和DAC曲线都有纵波、横波制作的曲线,并不是简单地由纵波、横波来划分何为AVG曲线&#xf…

Kafka的重要组件,谈谈流处理引擎Kafka Stream

系列文章目录 上手第一关,手把手教你安装kafka与可视化工具kafka-eagle Kafka是什么,以及如何使用SpringBoot对接Kafka 架构必备能力——kafka的选型对比及应用场景 Kafka存取原理与实现分析,打破面试难关 防止消息丢失与消息重复——Kafka可…

Spring Boot中配置文件生效位置

1. 配置文件位置 首先小伙伴们要明白,Spring Boot 默认加载的配置文件是 application.properties 或者 application.yaml,properties优先级高于yaml。默认的加载位置一共有五个,五个位置可以分为两类: 从 classpath 下加载&…

「Qt Widget中文示例指南」如何创建一个计算器?(一)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 本文将展示如何使用…

再谈谈注解

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 注解,和反射…

成都瀚网科技有限公司抖音带货靠谱么

近年来,随着社交媒体的兴起,越来越多的企业开始利用抖音等短视频平台进行产品推广和销售。成都瀚网科技有限公司也紧跟潮流,通过抖音平台进行带货。那么,成都瀚网科技有限公司的抖音带货靠谱么?本文将从以下几个方面进…

网站监控的重要性及实施策略

随着互联网的快速发展,网站已经成为企业和个人不可或缺的在线服务平台。然而,网站的安全性和稳定性一直是企业及个人非常关注的问题。一旦网站出现故障或者被攻击,将会给企业和个人带来严重的损失。因此,实施有效的网站监控策略对…

为什么 Django 后台管理系统那么“丑”?

哈喽大家好,我是咸鱼 相信使用过 Django 的小伙伴都知道 Django 有一个默认的后台管理系统——Django Admin 它的 UI 很多年都没有发生过变化,现在看来显得有些“过时且简陋” 那为什么 Django 的维护者却不去优化一下呢?原文作者去询问了多…

RT-DETR手把手教程,注意力机制如何添加在网络的不同位置进行创新优化

💡💡💡本文独家改进:本文首先复现了将EMA引入到RT-DETR中,并跟不同模块进行结合创新;1)Rep C3结合;2)直接作为注意力机制放在网络不同位置;3)高效…

女儿冬天的第一件羽绒服,这也太好看了

分享女儿的时尚穿搭 撞色插肩款羽绒服 同色系的精彩碰撞 描绘出绚烂的色彩 走在街上就是最靓的崽 显肤色显瘦超吸睛 妥投时尚小潮人一枚

如何将图片转为excel或word?(客户端)

演示软件:金鸣表格文字识别大师3.6.1(新版本界面可能会略有不同) 第一部分 将图片转为excel或文表混合的word 一般的软件要将图片转为可编辑的excel,都需要待识别的图片要有明显清晰的表格线,但我们程序现已克服了这…

【数据结构】图的存储结构(邻接矩阵)

一.邻接矩阵 1.图的特点 任何两个顶点之间都可能存在边,无法通过存储位置表示这种任意的逻辑关系。 图无法采用顺序存储结构。 2.如何存储图? 将顶点与边分开存储。 3.邻接矩阵(数组表示法) 基本思想: 用一个一维数…

jenkins-2.426.1-1.1.noarch.rpm 的公钥没有安装

执行命令 yum install jenkins 报错 jenkins-2.426.1-1.1.noarch.rpm 的公钥没有安装 下载的软件包保存在缓存中,直到下次成功执行事务。 您可以通过执行 yum clean packages 删除软件包缓存。 错误:GPG 检查失败 解决办法: 1、安装新的公…

『C++成长记』类和对象

🔥博客主页:小王又困了 📚系列专栏:C 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、类的引入 二、类的定义 三、类的访问限定符 四、类的作用域 五、类的实例化…

vue-waterfall2 实现瀑布流,及总结的问题

注意:引入需要在主界面引入,直接在组件中引用会有问题 1.安装 npm install vue-waterfall21.8.20 --save (提示:一定要安装1.8.20,最新版会有一部分问题) 2.打开main.js文件 import waterfall from v…

微服务实战系列之Gateway

前言 人类世界自工业革命以来,无论从金融、货币、制度,还是科技、资源、社会各个方面,都发生了翻天覆地的变化。物质极大丰富,从而也推动了科技的极速发展。当计算机问世也仅仅不到80年,而如今我们的生活中处处有它的影…

云原生Docker系列 | Docker私有镜像仓库公有镜像仓库使用

云原生Docker系列 | Docker私有镜像仓库&公有镜像仓库使用 1. 使用公有云镜像仓库1.1. 阿里云镜像仓库1.2. 华为云镜像仓库1.3. 腾讯云镜像仓库2. 使用Docker Hub镜像仓库3. 使用Harbor构建私有镜像仓库4. 搭建本地Registry镜像仓库1. 使用公有云镜像仓库 1.1. 阿里云镜像…

GNSS位移监测站系统是什么

WX-WY4G 一、GNSS位移监测站系统的工作原理GNSS位移监测站系统是一种基于导航卫星系统(GNSS)的高精度位移监测技术。它通过接收和处理来自卫星的信号,对地表物体的位置进行精度的实时监测。这个系统具有可靠性的特点,被广泛应用于…

ubuntu20.04.1网络图标突然消失,无法上网

故障:打开虚拟机进入Ubuntu系统后,打开火狐浏览器,发现无法连接网络。 解决办法:因为刚接触Linux系统,就在网上找各种资料,试了各种办法无果,最后发现有可能网络配置文件被更改。 打开控制台输…

JavaScript编程基础 – 函数进阶

JavaScript编程基础 – 函数进阶 JavaScript Programming Essentials – Perfect Functions “函数的第一条原则是要小,函数的第二条原则是要更小。“ – 罗伯特.C.马丁 前文讲述过函数多取决于数学的函数概念,以此来定义JavaScript编程语言的函数&…