基于k8s快速搭建docker镜像服务的demo
基于k8s快速搭建docker镜像服务的demo
一、环境准备
如标题,你需要环境中有
和
2个平台,并且服务器上也已经安装好docker服务
接下来我来构建一个docker镜像,然后使用harbor+k8s来快速部署服务demo
二、部署概述
使用docker构建镜像,然后推送到镜像仓库harbor上,再通过k8s创建工作负载,构建服务运行
三、具体步骤
一、将可执行的springboot项目jar包封装成镜像
1、编写dockerfile文件
# 基础镜像
FROM openjdk:11.0-jre-buster
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY Hello.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]
项目jar包和dockerfile文件放在同一目录下

2、将项目构建成镜像文件
由于我现在的线上服务器环境无法构建镜像文件,我需要先在本地build构建镜像文件,再把项目保存为tar包文件,再上传到线上服务器上,最后加载出镜像,现描述这种方式执行过程(如果线上服务器docker能build,执行(1)就行)
(1)本地build构建镜像文件
docker build -t 镜像名称:版本 dockfile所在路径
(.表示dockerfile与项目jar包在同一目录下)

构建完成后,可发现镜像已生成
docker images

(2)将Docker镜像保存为.tar文件,
docker save -o <输出文件名>.tar <镜像名>

(3)tar文件上传到线上服务器上
可通过ftp传输,这里不再赘述
(4)加载tar包文件为镜像
文件上传到线上服务器后,加载生成镜像
docker load -i tar包文件

二、打标签与推送到harbor仓库
# docker tag 镜像名:版本 harbor地址/项目名/镜像名:版本
docker tag hello:1.0 xx.xx.xx/demo/hello:1.0
# docker push harbor地址/项目名/镜像名:版本
docker push xx.xx.xx/demo/hello:1.0

完成后可前往harbor仓库查看

三、使用k8s构建容器服务
创建流程大致为:
创建项目-创建工作负载-创建服务
我挑几个重点来说
1、工作负载
在容器组设置中,选择镜像最好指定镜像在仓库的完整地址,方便快速定位选择

在创建服务时,容器端口要和项目启动的端口保持一致,不然无法访问到服务

访问模式我选择的是NodePort,他会随机生成一个端口


创建好服务后,通过ip加端口就能访问部署的服务了

至此,项目成功部署
我还在网上找到一张Jenkins+k8s+harbor部署方式,大家也可以尝试一下

相关文章:
基于k8s快速搭建docker镜像服务的demo
基于k8s快速搭建docker镜像服务的demo 一、环境准备 如标题,你需要环境中有和2个平台,并且服务器上也已经安装好docker服务 接下来我来构建一个docker镜像,然后使用harbork8s来快速部署服务demo 二、部署概述 使用docker构建镜像&#x…...
“论大数据处理架构及其应用”写作框架,软考高级论文,系统架构设计师论文
论文真题 大数据处理架构是专门用于处理和分析巨量复杂数据集的软件架构。它通常包括数据收集、存储、处理、分析和可视化等多个层面,旨在从海量、多样化的数据中提取有价值的信息。Lambda架构是大数据平台里最成熟、最稳定的架构,它是一种将批处理和流…...
tarojs项目启动篇
TaroJS 是一个开放式跨端开发解决方案,使用 React 语法规范来开发多端应用(包括小程序、H5、React Native 等)。它可以帮助开发者高效地构建出在不同端上运行一致的应用。以下是启动 TaroJS 项目(本来就有的旧项目)的步…...
Maven打包时将本地 jar 加入 classpath
在使用 maven 编译项目时,我们有时候会需要引入本地的 jar 包作为依赖(不部署到本地仓库),一般会使用 scope 为 system 的标签来引入,如下所示: <dependency><groupId>com.example</groupI…...
Spring Boot打出的jar包为什么可以独立运行
闲来无事,浏览网页看到有人说jar包为什么可以独立运行,想起前端时间写的jar打包后无法正常运行处理。jar解压缩后有多个文件夹,内部存放运行所需jar包和一些配置文件,本文做一个简单介绍。 JAR包和WAR包区别 在Java开发中&#…...
“微软蓝屏”事件:网络安全与稳定性的深刻反思
🌈所属专栏:【其它】✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您的点…...
【技术升级】Docker环境下Nacos平滑升级攻略,安全配置一步到位
目前项目当中使用的Nacos版本为2.0.2,该版本可能存在一定的安全风险。软件的安全性是一个持续关注的问题,尤其是对于像Nacos这样的服务发现与配置管理平台,它在微服务架构中扮演着核心角色。随着新版本的发布,开发团队会修复已知的…...
[题解]CF1401E.Divide Square(codeforces 05)
题目描述 There is a square of size 106106106106 on the coordinate plane with four points (0,0)(0,0) , (0,106)(0,106) , (106,0)(106,0) , and (106,106)(106,106) as its vertices. You are going to draw segments on the plane. All segments are either horizonta…...
软考高级第四版备考--第32天(新一代信息技术及应用)
1、物联网 1.1技术基础 1.1.1感知层:由各种传感器构成,包括温度传感器,二维码标签、RFID标签和读写器,摄像头,GPS等感知终端。感知层是物联网识别物体、采集信息的来源。 1.1.2网络层:由各种网络&#x…...
【RabbitMQ】MQ相关概念
一、MQ的基本概念 定义:MQ全称为Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件。它允许应用程序通过读写队列中的消息来进行通信,而无需建立直接的连接。作用:主要用于分布式系统之间的通信&#x…...
【MySQL是怎样运行的 | 第二篇】MySQL三大日志文件
文章目录 2.MySQL三大日志文件2.1日志文件列表2.1.1 redo log2.1.2 bin log2.1.3 undo log 2.2redo log日志详讲2.3 binglog和redo log有什么区别?2.4一条更新语句的执行过程 2.MySQL三大日志文件 2.1日志文件列表 redo log:重做日志,记录了…...
视图、存储过程、触发器
一、视图 视图是从一个或者几个基本表(或视图)导出的表。它与基 本表不同,是一个虚表,视图只能用来从查询,不能做增删改(虚拟的表) 1.创建视图 创建视图的语法: create view 视图名【view_xxx / v_xxx】 a…...
【学习笔记】解决Serial Communication Library编译问题
【学习笔记】解决编译 Serial Communication Library 时的 Catkin 依赖问题 Serial Communication Library 是一个用 C 编写的用于连接类似 rs-232 串口的跨平台库。它提供了一个现代的 C 接口,它的工作流程设计在外观和感觉上与 PySerial 相似,但串口速…...
在 Windows 环境下实现负载均衡:提升系统性能与可靠性的关键技术
Windows 环境下的负载均衡:提升系统性能与可靠性的关键技术 负载均衡(Load Balancing)是现代网络架构中不可或缺的一部分,通过将请求分配到多台服务器上来提高系统的性能和可靠性。本文将介绍在 Windows 环境下使用负载均衡的基本…...
【Linux】-----工具篇(自动化构建工具make/makefile)
目录 前言 一、是什么? 二、怎么样的? 三、原理及细节 图解代码 细节1:make工作规则 ①依赖文件存在 ②依赖文件不存在 ③依赖文件列表为空(特殊) .PHONY关键字 细节2:makefile识别程序需要重新编译? 四、…...
图的遍历:深度优先搜索(DFS)
引言 图遍历是指按照一定的顺序访问图中的每个顶点。遍历图的两种主要方法是深度优先搜索(Depth-First Search, DFS)和广度优先搜索(Breadth-First Search, BFS)。本文将详细介绍深度优先搜索的定义、算法及其实现。 深度优先搜…...
普元EOS学习笔记-某些版本的EOS提供的maven获取依赖失败的问题解决
前言 普元EOS的开发包中,提供了maven,因为EOS项目的某些依赖只能从普元官方仓库获取,因此,编译EOS项目必须使用EOS提供的maven。 maven拉取依赖失败 某些版本的EOS提供的maven在编译EOS项目的时候会出现拉取失败的现象。 [FATA…...
Pycharm + Pyside6
1. 使用 Qt designer 创建 UI 文件 2. 使用 UIC 工具生成 ui_.py 文件 3. 自定义类导入ui.py 文件的窗口类 4.自定义窗口继承UI窗体类 5. self.setupUi(self) from PySide6.QtWidgets import QApplication, QWidget, QComboBox, QVBoxLayout from ui_test import Ui_Formc…...
强化学习之价值迭代算法动态规划求解悬崖漫步环境(CliffWalking)最优策略及最优状态价值函数
class CliffWalkingEnv:def __init__(self,ncol12,nrow4):self.ncolncol#定义网格世界的列self.nrownrow#定义网格世界的行self.Pself.createP()#转移矩阵P[state][action][(p,next_state,reward,done)]包含下一个状态和奖励def createP(self):P[[[]for i in range(4)]for j in…...
javascript deriveKey和deriveBits()由主密钥派生出新的密钥进行加密
deriveKey 方法的完整示例,演示如何使用 HMAC 作为密钥派生函数(KDF)来从一个给定的秘密(如密码)派生出一个新的 AES 加密密钥。 //创建一个函数来生成随机盐function getRandomSalt(length){let arraynew Uint8Array…...
第一次了解昇腾 NPU 的图编译?从 ge 开始
前言 当你第一次尝试把 PyTorch 模型放到昇腾 NPU 上跑的时候,大概率会遇到这个问题:模型加载成功了,但推理速度慢得让人怀疑人生。或者更糟糕:模型加载失败,报错说某些算子不支持。 这些问题的根源,通常…...
属性访问相关的魔法方法
核心概念与作用 这一系列函数主要用于动态操作对象的属性和方法,是 Python 反射(Reflection)机制的核心工具,常见的有: hasattr(obj, name):检查对象 obj 是否有指定名称(字符串)的…...
WeTextProcessing解决方案:构建企业级多语言文本归一化与逆归一化系统
WeTextProcessing解决方案:构建企业级多语言文本归一化与逆归一化系统 【免费下载链接】WeTextProcessing Text Normalization & Inverse Text Normalization 项目地址: https://gitcode.com/gh_mirrors/we/WeTextProcessing 在当今自然语言处理…...
别再死记硬背F=G+H了!用Unity手搓一个A*寻路,从DFS、BFS到Dijkstra一步步讲透
从零构建A*寻路:用Unity可视化算法演进之路当我在开发第一个2D策略游戏时,遇到了一个经典问题:如何让单位智能地绕过障碍物找到最短路径?像许多初学者一样,我直接跳到了A*算法的实现,却被那个神秘的FGH公式…...
Kali Linux忘记root密码别慌!两种方法(登录态/非登录态)手把手教你重置
Kali Linux忘记root密码的终极恢复指南:从原理到实战当你正专注于一个关键的安全测试项目,突然发现无法执行需要root权限的操作——这种场景对Kali Linux用户来说并不陌生。作为渗透测试和网络安全研究的标配系统,Kali Linux的root账户是系统…...
信创中间件深度解析:东方通TongWeb vs 金蝶天燕 vs 宝兰德,企业级选型指南
📚 信创中间件 🔧 企业级部署 🚀 国产化替代 ⏱️ 阅读约15分钟开篇导读:你是否在信创改造中不知道用什么替代WebLogic或WebSphere?网上搜到的中间件资料要么只讲产品功能不讲迁移方案,要么直接给配置却不解…...
前景理论(Prospect Theory)深入解析
前景理论(Prospect Theory)深入解析 前景理论由心理学家丹尼尔卡尼曼(Daniel Kahneman)和阿莫斯特沃斯基(Amos Tversky)于1979年在《Econometrica》杂志上提出,是行为经济学中最重要、最具影响力…...
企业如何利用Taotoken实现多模型API的统一管理与访问控制
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业如何利用Taotoken实现多模型API的统一管理与访问控制 在AI应用开发实践中,一个常见且棘手的问题是模型API的管理。…...
DLSS Swapper:免费高效的DLSS智能管理解决方案
DLSS Swapper:免费高效的DLSS智能管理解决方案 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款专为游戏玩家设计的免费开源工具,它通过智能管理DLSS、FSR和XeSS文件ÿ…...
【Google官方未公开】Gemini免费层底层计费逻辑揭秘:按token粒度精算,92%用户多花了37%配额
更多请点击: https://codechina.net 第一章:Gemini免费额度的本质与边界认知 Gemini 的免费额度并非无条件的“无限试用”,而是由 Google Cloud 的配额管理系统(Quota System)严格管控的服务配额,其本质是…...
