4-k8s-部署springboot项目简单实践

news/2024/10/18 7:49:42/

文章目录

    • 一、部署原理图
    • 二、部署实践

一、部署原理图

  1. 部门一般都有一个属于自己的私服gitlab服务器,由开发者开发代码,然后上传到私服gitlab
  2. 然后使用调度工具,如jenkins,去gitlab拉去代码,编译打包,最后得到一个jar包
  3. 得到的jar包,通过docker服务和编写好的Dockerfile文件,构建得到镜像
  4. 通过docker将镜像上传到harbor私服仓库
  5. 然后生产/测试环境,就可以在私服harbor服务器拉取镜像,进行部署
    在这里插入图片描述

二、部署实践

ps:由于还未搭建完整的devops流水线,所以这里主要简单手动模拟下打包镜像,上传镜像,拉去镜像部署的操作

  1. 准备好简单的springboot项目:docker.jar

  2. 编写Dockerfile文件

    FROM java:8
    VOLUME /tmp
    ADD docker.jar docker.jar
    RUN bash -c 'touch /docker.jar'
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/docker.jar"]
    
  3. 打包镜像:docker build . -t springboot-docker:v1

  4. 修改镜像标签:docker tag 5bea28f6b514 192.168.248.12:180/myresponsity/springboot-docker:v1

  5. 登录并且输入账号密码:docker login 192.168.248.12:180

  6. 上传镜像:docker push 192.168.248.12:180/myresponsity/springboot-docker:v1

  7. 编写k8s配置文件:vi /opt/springboot-docker.yaml

    ps:由于仓库是公开的,所以不需要设置私服harbor的账号密码

    apiVersion: apps/v1
    kind: Deployment
    metadata:name: sptestlabels:controller: deploy 
    spec:replicas: 1selector:matchLabels:app: sptesttemplate:metadata:labels:app: sptestspec:containers:- name: k8stestimage: 192.168.248.12:180/myresponsity/springboot-docker:v1ports:- name: k8stest-portcontainerPort: 8080protocol: TCP
    
  8. 启动pod:kubectl apply -f /opt/springboot-docker.yaml

  9. 暴露端口:kubectl expose deployment sptest --name=sptest-service --type=NodePort --port=8080 --target-port=8080

  10. 查看端口: kubectl get svc -n springboot
    在这里插入图片描述

  11. 访问:http://192.168.248.12:32367/
    在这里插入图片描述


http://www.ppmy.cn/news/1158554.html

相关文章

android--屏幕适配

基础概念 像素密度 dpi ( √宽^2高^2 ) / 屏幕大小 手机分辨率 1080 * 1920 1080代表宽 1920代表高 单位为px像素 屏幕大小为英寸 标准的像素密度 mdpi 160dpi dp 密度无关像素 dp与px的转换 density (dpi / 16…

外卖大数据案例

一、环境要求 HadoopHiveSparkHBase 开发环境。 二、数据描述 meituan_waimai_meishi.csv 是某外卖平台的部分外卖 SPU(Standard Product Unit , 标准产品单元)数据,包含了外卖平台某地区一时间的外卖信息。具体字段说明如下&am…

java幼儿园校园学习资源互助共享平台的设计springboot+vue

幼儿资源共享之家在设计之初也只是想弄个关于幼儿资源的一些物资交换系统,但是仅仅是作为一个进行二手交易类型的网站,用户粘性会出现问题,进而会导致产品可能不会达到预期,甚至开发的小黄鸭幼儿资源共享之家会无法良性生存下去。…

【C++】缺省参数与函数重载

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》 🌝每一个不曾起舞的日子,都是对生命的辜负 前言 本篇文章博主将带你学习缺省参数与函数重载&…

消灭指标二义性!提效30%的指标管理如何炼成?

众所周知,「指标」是企业通过数据分析衡量业绩的重要参数。然而,不同部门、不同渠道往往存在不同的使用场景和术语体系。 举个例子: 这是一家知名的服饰品牌,不同平台渠道归属于不同部门管理。 适逢双11大促,老板说&…

Javascript——原生写table表格

写一个6行9列的表格 <div class"power-data"><table class"table1 table-all" cellpadding"0" cellspacing"0"><!--第一行--><tr><th class"thBack">表格</th><th class"thBa…

ABAP 新增PO计划行时 新增行交货日期默认当前最大交期

ABAP 新增PO计划行时 新增行交货日期默认当前最大交期 DATA: ls_poitem TYPE mepoitem. DATA: ls_jhh TYPE meposchedule. DATA: ls_poitemc TYPE REF TO if_purchase_order_item_mm. DATA: is_persistent TYPE mmpur_bool. DATA: lt_eket TYPE TABLE OF eket. DATA: ls_e…

python3 解析json文件,python循环读取目录文件

python循环读取目录文件_mob649e815e9bc9的技术博客_51CTO博客 python3 解析json文件_mob649e816138f5的技术博客_51CTO博客 import osdef loop_dir_files(path):# 获取目录下的所有文件和文件夹files os.listdir(path)for file in files:# 拼接文件的完整路径file_path os…