文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

(十)服务器K8S集群部署SpringBoot项目实战

2023-08-30 17:48

关注

1.准备springboot项目

可以在 https://start.spring.io/网站准备一个项目,这里作为k8s的学习所以springboot项目中准备一个简单的访问接口即可。
在这里插入图片描述

2.服务器环境准备

安装Jdk

更新系统软件包:

sudo yum update

安装 OpenJDK 11:

sudo yum install java-11-openjdk-devel

验证 Java 安装:

java -version

在这里插入图片描述
4.配置环境变量

vim /etc/profile
#JAVA_HOME 的内容根据具体安装jdk的路径替换JAVA_HOME=/usr/lib/jvm/java-11-openjdkCLASSPATH=$JAVA_HOME/lib/PATH=$PATH:$JAVA_HOME/binexport PATH JAVA_HOME CLASSPATH

使环境变量生效

source /etc/profile

安装Maven

可以在 https://dlcdn.apache.org/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.zip 网站下载3.5.4版本(或者https://maven.apache.org/download.cgi 下载自己需要的版本),上传到服务器 /usr/local/software/ 目录下
2.安装 unzip 命令

yum install unzip -y

解压

unzip apache-maven-3.5.4-bin.zip

修改名称

mv apache-maven-3.5.4 maven3.5

配置环境变量

vim /etc/profile
JAVA_HOME=/usr/lib/jvm/java-11-openjdkCLASSPATH=$JAVA_HOME/lib/PATH=$PATH:$JAVA_HOME/binMAVEN_HOME=/usr/local/software/maven3.5PATH=$PATH:$MAVEN_HOME/binexport PATH JAVA_HOME CLASSPATH MAVEN_HOME

使环境变量生效

source /etc/profile

3.springboot项目构建和打包docker

将打包文件名设置成 demo
在springboot项目中的pom文件中设置finalName

在这里插入图片描述
2.添加Dockerfile文件,文件放在项目跟目录下
在这里插入图片描述
Dockerfile文件

FROM adoptopenjdk/openjdk11:jre11u-nightlyADD target/demo.jar demo.jarENTRYPOINT ["java","-jar","/demo.jar"]

上传springboot项目到服务器进入到根目录打包

执行命令

mvn clean install

构建镜像(不要忽略最后的一个点)

docker build -t demo:1.0 .

查看镜像列表

docker images

启动

docker run -d -it -p 8080:8080 --name=k8sdemo demo:1.0

4.镜像推送(阿里云举例)

阿里云账号访问地址
https://cr.console.aliyun.com/
仓库的创建这里不做赘述,自行百度(个人版不收费)

推送私有镜像仓

#仓库地址根据自己的地址替换docker login --username=gq570566 registry.cn-shenzhen.aliyuncs.com#打tag#docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/fqfff/demo:[镜像版本号]docker tag ba0652a92214 registry.cn-hangzhou.aliyuncs.com/fqfff/demo:1.0#推送#docker push registry.cn-hangzhou.aliyuncs.com/fqfff/demo:[镜像版本号]docker push registry.cn-hangzhou.aliyuncs.com/fqfff/demo:1.0#拉取docker pull registry.cn-hangzhou.aliyuncs.com/fqfff/demo:[镜像版本号]

5.K8s部署SpringBoot项目

创建secert

#kubectl create secret docker-registry demo-docker-secret --docker-server=registry.cn-hangzhou.aliyuncs.com --docker-username=用户名 --docker-password=登录密码kubectl create secret docker-registry demo-docker-secret --docker-server=registry.cn-hangzhou.aliyuncs.com --docker-username=gq570566--docker-password=*****

创建k8sdemo-deployment的yaml文件

快速生成yaml文件方式

kubectl create deployment k8sdemo --image=registry.cn-hangzhou.aliyuncs.com/fqfff/demo:1.0 --dry-run=client -o yaml > demo-k8s.yaml

修改副本数量为 2,挂载 secret

apiVersion: apps/v1kind: Deploymentmetadata:  creationTimestamp: null  labels:    app: k8sdemo  name: k8sdemospec:  replicas: 2  selector:    matchLabels:      app: k8sdemo  strategy: {}  template:    metadata:      creationTimestamp: null      labels:        app: k8sdemo    spec:      imagePullSecrets:        - name: demo-docker-secret      containers:      - image: registry.cn-hangzhou.aliyuncs.com/fqfff/demo:1.0        name: demo-k8s        resources: {}status: {}

创建控制器

kubectl apply -f demo-k8s.yaml

创建service, nodePort类型

kubectl expose deploy k8sdemo --port=8080 --target-port=8080 --type=NodePort

测试访问

查看端口

kubectl get svc

在这里插入图片描述
访问 节点ip+端口+接口地址
在这里插入图片描述

成功!

来源地址:https://blog.csdn.net/csdn570566705/article/details/131040836

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯