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

基于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部署方式,大家也可以尝试一下
在这里插入图片描述

http://www.lryc.cn/news/409149.html

相关文章:

  • “论大数据处理架构及其应用”写作框架,软考高级论文,系统架构设计师论文
  • tarojs项目启动篇
  • Maven打包时将本地 jar 加入 classpath
  • Spring Boot打出的jar包为什么可以独立运行
  • “微软蓝屏”事件:网络安全与稳定性的深刻反思
  • 【技术升级】Docker环境下Nacos平滑升级攻略,安全配置一步到位
  • [题解]CF1401E.Divide Square(codeforces 05)
  • 软考高级第四版备考--第32天(新一代信息技术及应用)
  • 【RabbitMQ】MQ相关概念
  • 【MySQL是怎样运行的 | 第二篇】MySQL三大日志文件
  • 视图、存储过程、触发器
  • 【学习笔记】解决Serial Communication Library编译问题
  • 在 Windows 环境下实现负载均衡:提升系统性能与可靠性的关键技术
  • 【Linux】-----工具篇(自动化构建工具make/makefile)
  • 图的遍历:深度优先搜索(DFS)
  • 普元EOS学习笔记-某些版本的EOS提供的maven获取依赖失败的问题解决
  • Pycharm + Pyside6
  • 强化学习之价值迭代算法动态规划求解悬崖漫步环境(CliffWalking)最优策略及最优状态价值函数
  • javascript deriveKey和deriveBits()由主密钥派生出新的密钥进行加密
  • 基于微信小程序的自习室选座系统/基于Java的自习室选座系统/自习室管理系统的设计与实现
  • echarts所遇到的问题,个人记录
  • Skyeye云智能制造企业版源代码全部开放
  • Springboot 整合Elasticsearch
  • WeNet环境配置与aishell模型训练
  • 【C++的剃刀】我不允许你还不会AVL树
  • React搭建Vite项目及各种项目配置
  • Linux Vim教程:多文件编辑与窗口管理
  • C语言进阶 11.结构体
  • Vue--解决error:0308010C:digital envelope routines::unsupported
  • go-kratos 学习笔记(6) 数据库gorm使用