K8s部署SpringBoot项目简单例子

news/2024/4/30 0:25:37/文章来源:https://blog.csdn.net/akenseren/article/details/126810680

目录

前言

前提条件

正文

1. 获取镜像

2. 空运行测试生成部署yaml文件

3. 修改yaml文件,增加镜像拉取策略

4. 以yaml文件的方式部署springboot项目

5. 查看部署pod的状态

6. 暴露服务端口

7.通过浏览器访问服务


前言

本文通过将一个构建好的springboot的hello-world项目镜像,通过yaml部署的方式将其部署到K8s上。通过回顾部署的具体实现作为springboot项目K8s容器化部署的开始,后续考虑补充多个服务部署过程中出现的一些问题,加深对K8s的理解。

前提条件

本文默认已经制作好了springboot项目的镜像,可以参见博主之前的一篇博客,介绍如何制作该镜像。

Docker启动SpringBoot简单例子

正文

1. 获取镜像

对于制作好的镜像,可以通过docker load -i 导入的方式导入或者从harbor上拉取,本文由于之前的镜像在harbor上,故直接拉取镜像。

[root@localhost k8s-env]# docker pull 192.168.79.131:8443/test/springboot-helloworld:latest
latest: Pulling from test/springboot-helloworld
7448db3b31eb: Pull complete
c36604fa7939: Pull complete
29e8ef0e3340: Pull complete
a0c934d2565d: Pull complete
a360a17c9cab: Pull complete
cfcc996af805: Pull complete
2cf014724202: Pull complete
4bc402a00dfe: Pull complete
44a7449e65ee: Pull complete
25a52df076b4: Pull complete
Digest: sha256:15a44f192e1ebe7ae69b2f792ff8876d6184099aeb3eaaa75039091f378d57af
Status: Downloaded newer image for 192.168.79.131:8443/test/springboot-helloworld:latest

查看拉取的镜像

为方便管理,重新发个简单的tag

docker tag 192.168.79.131:8443/test/springboot-helloworld:latest springboot-helloworld:latest

2. 空运行测试生成部署yaml文件

执行如下指令

kubectl create deployment springboot-helloworld --image=springboot-helloworld:latest --dry-run -o yaml > springboot-helloworld.yaml
[root@localhost k8s-env]# kubectl create deployment springboot-helloworld --image=springboot-helloworld:latest --dry-run -o yaml > springboot-helloworld.yaml
W0911 22:21:58.731993   14903 helpers.go:557] --dry-run is deprecated and can be replaced with --dry-run=client.
[root@localhost k8s-env]# ll
total 4
-rw-r--r-- 1 root root 487 Sep 11 22:21 springboot-helloworld.yaml

 查看生成的yaml文件

[root@localhost k8s-env]# cat springboot-helloworld.yaml
apiVersion: apps/v1
kind: Deployment
metadata:creationTimestamp: nulllabels:app: springboot-helloworldname: springboot-helloworld
spec:replicas: 1selector:matchLabels:app: springboot-helloworldstrategy: {}template:metadata:creationTimestamp: nulllabels:app: springboot-helloworldspec:containers:- image: springboot-helloworld:latestname: springboot-helloworldresources: {}
status: {}

3. 修改yaml文件,增加镜像拉取策略

4. 以yaml文件的方式部署springboot项目

[root@localhost k8s-env]# kubectl apply -f springboot-helloworld.yaml
deployment.apps/springboot-helloworld created

5. 查看部署pod的状态

[root@localhost k8s-env]# kubectl get pod -A
NAMESPACE     NAME                                            READY   STATUS    RESTARTS   AGE
default       springboot-helloworld-b8cd9f79c-47sxr           1/1     Running   0          26s[root@localhost k8s-env]# kubectl get deployment
NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
springboot-helloworld   1/1     1            1           60s

6. 暴露服务端口

执行如下指令暴露服务端口

kubectl expose deployment springboot-helloworld --port=8089 --type=NodePort
[root@localhost k8s-env]# kubectl expose deployment springboot-helloworld --port=8089 --type=NodePort
service/springboot-helloworld exposed
[root@localhost k8s-env]# kubectl get svc
NAME                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
kubernetes              ClusterIP   10.96.0.1       <none>        443/TCP          11h
springboot-helloworld   NodePort    10.100.70.103   <none>        8089:30210/TCP   19s

7.通过浏览器访问服务

访问服务地址:http://192.168.79.139:30210/hello

部署成功。

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

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

相关文章

Linux服务器上通过miniconda安装R(2022)

安装miniconda 下载最新版miniconda wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh安装 bash Miniconda3-latest-Linux-x86_64.sh这一步骤里我们输入完命令后会有个License要读&#xff0c;一行一行读的话按Enter&#xff0c;不想读就直接输…

【uiautomation】获取微信好友名单,可指定标签 全部

前言 接到了一个需求&#xff1a;现微信有8000好友&#xff0c;需要给所有好友发送一则一样的消息。网上搜索一番后&#xff0c;发现uiautomation 可以解决该需求&#xff0c;遂有此文。这是第一篇&#xff0c;获取全部好友 代码在文章末尾&#xff0c;自取~ 微信群发消息链接 …

一个画廊的GIF动画动作英雄从80年代和90年代

你还记得那些80年代和90年代初的动作英雄吗?比如查克诺里斯、史蒂文西格尔、西尔维斯特史泰龙、让克劳德范达姆,当然还有阿诺德施瓦辛格?意大利天才设计师DavideMazuchin&;郭美雄创建了一个图文并茂的GIF画廊,名为“过去的动作英雄”,以纪念那些年轻时的经典英雄。以…

不同vlan之间实现通信

目录: 1、单臂路由实现不同vlan间通信的原理 2、单臂路由的缺陷 3、单臂路由的配置 4、三层交换 不同vlan之间实现通信 单臂路由链路类型:交换机连接主机的端口位为access链路交换机连接路由器的的端口为trunk链路子接口:路由器的物理接口可以被划分成多个逻辑接口每个子接口…

【云原生】Kubernetes CRD 详解(Custom Resource Definition)

文章目录一、概述二、定制资源1&#xff09;定制资源 和 定制控制器2&#xff09;定制控制器3&#xff09;Operator 介绍1、Operator Framework2、Operator 安装3、安装 Operator SDK4、Operator 简单使用4&#xff09;Kubernetes API 聚合层5&#xff09;声明式 APIs6&#xf…

HTML 快速入门

HTML代码是“标签化”的代码&#xff0c;把一个HTML文件视为一个文档&#xff0c;文档中有很多的标签&#xff0c;每一个标签也可以称为一个元素&#xff0c;同时每一个元素也对应一个对象&#xff0c;对象中有属性和方法。HTML的标签除了部分标签外&#xff0c;其他的都是成对…

易网防伪防窜货溯源管理系统源码

防伪防窜货和溯源系统更好用更易用&#xff0c;系统由PHPmysql开发&#xff0c;安全稳定。系统以防伪码(溯源码)为中心&#xff0c;可非常方便的为防伪码赋值产品信息&#xff0c;溯源信息。是建立防伪防窜货和溯源追踪系统的不二选择。 系统功能介绍&#xff1a; 一、防伪码管…

【RuoYi-Vue-Plus】学习笔记 40 - Validator(一)校验器对 Model 属性校验调用流程分析

文章目录前言参考目录框架集成1、Maven2、校验框架配置类 ValidatorConfig3、测试方法4、接口测试4.1、校验失败&#xff08;参数为 null&#xff09;4.2、校验成功&#xff08;参数不为 null&#xff09;执行流程分析InvocableHandlerMethod#invokeForRequestInvocableHandler…

来自邦卡的神奇扁平超级英雄插图

平面设计趋势正在相当大程度上动摇平面设计行业的各个方面。我们正在进入一个简单和最低限度的沟通模式的新时代,在这个时代中,平面设计似乎以最好的方式提供。 受平面设计形式的启发,法国平面设计师邦卡采用了相同的方法,创作了一系列简约、平面的超级英雄插图。这些插图涵…

自制操作系统日志——第二十二天

自制操作系统日志——第二十二天 今天&#xff0c;我们将继续再完善一下保护操作系统的内容&#xff0c;以及进一步的利用c语言显示字符串&#xff01; 文章目录自制操作系统日志——第二十二天一、保护操作系统3手动强制关闭应用程序二、用c语言显示字符串API 显示窗口总结一…

vivado使用方法(初级)

文章目录1 创建新工程1.1 工程创建1.2 新建Verilog文件1.3 仿真参考1 创建新工程 1.1 工程创建 1、首先打开Vavido软件&#xff0c;点击Creat Project或者在File——>Project——>New里面进行新工程的创建 2、然后在弹出的界面上点击Next进入下一个界面进行项目的命名…

全站最简单 “数据滚动可视化大屏” 【JS基础拿来即用】

源码获取方式&#xff1a; 数据滚动大屏源码&#xff0c;原生js实现超级简单-Javascript文档类资源-CSDN下载原生js实现的数据滚动大屏案例&#xff0c;实现应该是全网最简单的&#xff0c;拿来直接使用即可&#xff0c;没有会员的小伙伴去我文章主更多下载资源、学习资料请访问…

基于Python实现的遗传算法求TSP问题

遗传算法求TSP问题 目录 人工智能第四次实验报告 1 遗传算法求TSP问题 1 一 、问题背景 1 1.1 遗传算法简介 1 1.2 遗传算法基本要素 2 1.3 遗传算法一般步骤 2 二 、程序说明 3 2.3 选择初始群体 4 2.4 适应度函数 4 2.5 遗传操作 4 2.6 迭代过程 4 三 、程序测试 5 3.1 求解…

Vue3+elementplus搭建通用管理系统实例七:通用表格实现上

一、本章内容 使用配置的方式实现表格的界面的自动生成、自动解析实体配置信息,并生成表格列、筛选项等功能,完整课程地址 二、效果预览 三、开发视频

动手实现深度学习(12): 卷积层的实现

9.1 卷积层的运算 传送门: https://www.cnblogs.com/greentomlee/p/12314064.html github: Leezhen2014: https://github.com/Leezhen2014/python_deep_learning 卷积的forward 卷积的计算过程网上的资料已经做够好了,没必要自己再写一遍。只把资料搬运到这里: http://deepl…

【进击的JavaScript|高薪面试必看】JS基础-作用域和闭包

六年代码两茫茫&#xff0c;不思量&#xff0c;自难忘 6年资深前端主管一枚&#xff0c;只分享技术干货&#xff0c;项目实战经验&#xff0c;面试指导 关注博主不迷路~ 本系列文章是博主精心整理的面试热点问题&#xff0c;吸收了大量的技术博客与面试文章&#xff0c;总结多年…

Java毕设项目——网上宠物店管理系统(java+SSM+Maven+Mysql+Jsp)

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM 技术&#xff1a;Jsp JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a…

收银台——Web自动化测试

目录 一&#xff0c;收银台项目的主要功能&#xff1a; 二&#xff0c;Web自动化测试 一&#xff0c;Web自动化测试&#xff0c;设计测试用例 二&#xff0c;编写测试用例代码 三&#xff0c;测试结果&#xff1a; 四&#xff0c;总结&#xff1a; 一&#xff0c;收银台项…

JVM监控:JMX组件与底层原理

JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架 &#xff0c;从Java5.0开始引入到标准Java技术平台中。JMX是一套标准的代理和服务&#xff0c;实际上&#xff0c;用户可以在任何Java应用程序中使用这些代理和服务实现管理。 其实JMX也可以看作一个框架&a…

一建报名重大变动 部分专业考生2022年不能报名一级建造师考试?

2022年度一级建造师资格考试报名证明事项实行告知承诺制&#xff0c;应试人员须通过中国人事考试网的全国专业技术人员资格考试报名服务平台进行网上注册、报名和缴费。 云南报名时间&#xff1a;2022年9月14日—9月21日&#xff1b;缴费截止时间&#xff1a;9月14日—9月23日…