当前位置: 首页 > news >正文

使用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了。

相关文章:

使用DHorse发布SpringBoot项目到K8S

前言 在介绍DHorse的操作之前,先来介绍一下使用k8s发布应用的步骤,以SpringBoot应用为例进行说明。 1.首先从代码仓库下载代码,比如GitLab; 2.接着进行构建,比如使用Maven; 3.如果要使用k8s作为编排&am…...

Java修仙记之记录一次与前端女修士论道的经历

文章开始之前,想跟我念一句:福生无量天尊,无量寿佛,阿弥陀佛 第一场论道:id更新之争 一个天气明朗的下午,前端的小美女长发姐告诉我:嘿,小后端,你的代码报错了 我答道&am…...

初识linux(1)

文章目录 什么是linux什么是操作系统?开源 怎么装linux的环境基础指令lspwdcdtouchmkdirrmdir与rmmancpmv 什么是linux linux是一款开源操作系统 什么是操作系统? 操作系统:一种对计算机所有计算机软硬件进行控制和管理的系统软件 开源 开源&…...

投资黄金:如何选择正确的黄金品种增加收益?

黄金一直以来都是备受投资者青睐的避险资产,然而,在庞大的黄金市场中,选择适合自己的黄金品种成为影响收益的关键因素。黄金投资并不只有一种方式,而是有很多种不同的黄金品种可以选择。每种黄金品种都有其独特的特点和风险&#…...

Rust错误处理机制:优雅地管理错误

大家好!我是lincyang。 今天,我们要探讨的是Rust语言中的错误处理机制。 Rust作为一种系统编程语言,对错误处理的重视程度是非常高的。它提供了一套既安全又灵活的机制来处理可能出现的错误。 Rust错误处理的两大类别 在Rust中&#xff0…...

docker-compose安装harbor

docker-compose安装harbor 环境:centos7 1、安装docker 官方文档 https://docs.docker.com/engine/install/centos/ 1、卸载旧版本 $ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate …...

【python学习】基础篇-常用模块-shutil文件和目录操作

shutil模块是Python标准库中的一个模块,提供了对文件和目录进行高级操作的函数。 以下是shutil模块的一些常用函数: 1.复制文件: 将源文件src复制到目标文件dst。如果follow_symlinks为True,则会跟随符号链接。 shutil.copy(src, dst, *, f…...

鸿蒙系统调研适配

写在前面: 以下内容基于我个人翻阅的官方资料以及自己的理解写的,可能存在认知和理解上的偏差,有些地方并不一定是对的,请谨慎对待,注意甄别! 一、鸿蒙OS是什么? 华为推出的多端统一平台&…...

SAP gui 登录条目不让修改

今天碰到用户安装的GUI 770 版本,不让修改,也不让添加 后面再选项里面找到了...

华为ac+fit无线2层漫游配置案例

ap的管理dhcp在ac上,业务dhcp在汇聚交换机上、并且带2层漫游 R1: interface GigabitEthernet0/0/0 ip address 11.1.1.1 255.255.255.0 ip route-static 12.2.2.0 255.255.255.0 11.1.1.2 ip route-static 192.168.0.0 255.255.0.0 11.1.1.2 lsw1: vlan batch 100…...

nginx的location中配置路径讲解

初次接触:可能会遇到404找不到页面的错误,主要原因是配置路径问题; 规则:ip port 等于 root,假设server的配置如下: server { listen 80; #端口号 location / { root /opt/sta…...

No appropriate protocol -- Mysql

DataGrip连接mysql报以下异常信息: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) The following required algorithms might be disabled: SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5wi…...

Using Set Processing Effectively 有效地使用集合处理

Using Set Processing Effectively 有效地使用集合处理 The information in the topics that follow applies if you are developing new or upgrading older Application Engine programs to adhere to a set-based model. 如果要开发新的应用程序引擎程序或升级旧的应用程序…...

HarmonyOS开发Java与ArkTS如何抉择

在“鸿蒙系统实战短视频App 从0到1掌握HarmonyOS”视频课程中,很多学员来问我,在HarmonyOS开发过程中,面对Java与ArkTS,应该选哪样? 本文详细分析Java与ArkTS在HarmonyOS开发过程的区别,力求解答学员的一些…...

“茶叶创新:爆改营销策略,三个月狂销2300万“

我的朋友去年制作了一款白茶,并在短短三个月内将其销售量推到了2300万的高峰。你相信吗? 这位朋友并没有任何茶叶方面的经验,他只是一个有着冒险精神的企业家。他先找到了一家代工厂,帮助他把他的茶叶理念转化为现实。 当他把茶叶…...

分享一个生成哈希值的C代码

代码是我在阅读assimp源码时看到的&#xff0c;不依赖任何第三方&#xff0c;可直接集成。 #pragma once #ifndef AI_HASH_H_INCLUDED #define AI_HASH_H_INCLUDED#ifdef __GNUC__ # pragma GCC system_header #endif#include <stdint.h> #include <string.h> #…...

【Windows 常用工具系列 11 -- 福昕PDF搜索高亮过的文本】

文章目录 福昕 PDF 搜索高亮过的文本 福昕 PDF 搜索高亮过的文本 在 pdf 文档阅读过程中&#xff0c;我们需要经常高亮一些文本&#xff0c;以方便下次阅读时找到重点。我这边使用的是 福昕PDF 阅读器&#xff0c;下面就介绍下如何在福昕阅读器中搜索已经高亮过的文本。...

(二)汇编语句组成

一个完整的 RISC-V 汇编程序有多条 语句&#xff08;statement&#xff09; 组成。 一条典型的 RISC-V 汇编 语句 由 3 部分组成&#xff1a; 1.标签 List item label&#xff08;标签&#xff09;: 标签是标识程序位置的记号。通常定义一个名称然后加上":"后缀。…...

Linux C 网络编程概述

网络编程 计算机网络概述分类网络体系结构通信协议通信流程网络通信帧格式以太网帧格式分析ARP 协议分析IP 数据报分析IP分类IP 分配子网掩码 TCP 段分析 TCP三次握手协议 ⭐TCP四次挥手协议 ⭐ TCP编程基于 TCP 客户端编程-步骤说明基于 TCP 服务器端编程-步骤说明基于 TCP 服…...

腾讯云标准型s5和s6有什么区别?CPU处理器有差异吗?

腾讯云服务器CVM标准型S5和S6有什么区别&#xff1f;都是标准型云服务器&#xff0c;标准型S5是次新一代云服务器规格&#xff0c;标准型S6是最新一代的云服务器&#xff0c;S6实例的CPU处理器主频性能要高于S5实例&#xff0c;同CPU内存配置下的标准型S6实例要比S5实例性能更好…...

音频工程中的平衡与非平衡连接技术解析

1. 平衡与非平衡音频基础解析在专业音频工程领域&#xff0c;平衡与非平衡连接是两种最基础的信号传输方式。从业20年来&#xff0c;我见证过无数因接口选择不当导致的系统故障——从细微的底噪到灾难性的交流声干扰。理解它们的本质区别&#xff0c;是搭建可靠音频系统的第一步…...

NiMH电池模拟锂电池的电源管理方案设计与实现

1. 项目概述&#xff1a;用NiMH电池模拟锂电的电源管理方案在便携式设备设计中&#xff0c;锂电池凭借其高能量密度成为主流选择&#xff0c;但供应链波动常导致供货紧张。我最近完成的一个项目&#xff0c;成功实现了用普通镍氢&#xff08;NiMH&#xff09;电池模拟锂电池的放…...

通用人工智能系统GPAIS:从专用AI到通用智能体的架构与实战

1. 项目概述&#xff1a;从“专用”到“通用”的AI范式跃迁最近几年&#xff0c;AI领域的热点几乎被大语言模型&#xff08;LLM&#xff09;和扩散模型&#xff08;AIGC&#xff09;所垄断。我们见证了它们在文本生成、代码编写、图像创作等特定任务上展现出的惊人能力。然而&a…...

UE5 GameFeature创建与使用

UE5 的 GameFeature 机制&#xff0c;本质是将游戏功能拆解为独立的、可动态加载/卸载的模块。其设计目标聚焦于以下工程问题&#xff1a; 大世界与长线运营项目&#xff1a;如《堡垒之夜》在节日期间临时注入限时玩法&#xff08;扔雪球、礼物空投&#xff09;&#xff0c;活…...

CANN/ops-rand贡献指南

贡献指南 【免费下载链接】ops-rand ops-rand是CANN &#xff08;Compute Architecture for Neural Networks&#xff09;算子库中提供的随机数生成库。 项目地址: https://gitcode.com/cann/ops-rand 本项目欢迎广大开发者体验并参与贡献&#xff0c;在参与社区贡献之前…...

YOLOv11野生动物园大型猫科动物目标检测数据集-8075张-Animal-detection-yolov8-1

YOLOv11野生动物园大型猫科动物目标检测数据集 &#x1f4ca; 数据集基本信息 目标类别&#xff1a; [‘Bird’, ‘Cat’, ‘Cross-Cattle’, ‘Dog’, ‘Elephant’, ‘Houseplant’, ‘Human-beard’, ‘Human-ear’, ‘Human-eye’, ‘Human-face’, ‘Human-hand’, ‘Huma…...

手把手教你用Phi-3.5-Mini搭建智能问答助手:从部署到对话全流程

手把手教你用Phi-3.5-Mini搭建智能问答助手&#xff1a;从部署到对话全流程 1. 项目介绍与准备工作 Phi-3.5-Mini是微软推出的轻量级大语言模型&#xff0c;专为本地部署优化设计。这个7B参数的模型在保持小巧体积的同时&#xff0c;展现出惊人的逻辑推理和代码生成能力。我们…...

Python 爬虫高级实战:AI 智能解析复杂网页内容

前言 现代网页大量采用 JavaScript 动态渲染、异步接口混淆、HTML 结构碎片化、标签无规律嵌套、反爬混淆节点、加密参数嵌入页面等设计&#xff0c;传统爬虫依赖 Xpath、BeautifulSoup 固定节点定位的解析方式&#xff0c;极易因页面小幅改版直接失效&#xff1b;部分网站采用…...

SRv6-BE配置实战:从基础到验证,【Bluedroid】A2dp Source播放流程源码分析(10):音频传输与SBC编码机制深度解析(a2dp_sbc_send_frames)。

SRv6-BE 配置案例详解 SRv6&#xff08;Segment Routing over IPv6&#xff09;是一种基于IPv6的源路由技术&#xff0c;通过将路径信息编码在数据包头中实现灵活流量调度。SRv6-BE&#xff08;Best Effort&#xff09;是最基础的转发模式&#xff0c;以下为典型配置案例及技术…...

避坑指南:ESP32-CAM用I2C驱动0.91寸OLED时,SDA/SCL引脚别接错了

ESP32-CAM与OLED屏的I2C连接避坑实战&#xff1a;从硬件引脚到代码调试的全方位指南 第一次拿到ESP32-CAM和0.91寸OLED屏时&#xff0c;我天真地以为只要按照常规I2C接线就能轻松点亮屏幕。结果在经历了一整天的调试后&#xff0c;才意识到这个看似简单的连接背后藏着不少"…...