当前位置:   article > 正文

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

k8s部署springboot项目

1.准备springboot项目

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

2.服务器环境准备

安装Jdk

1.更新系统软件包:

sudo yum update
  • 1

2.安装 OpenJDK 11:

sudo yum install java-11-openjdk-devel
  • 1

3.验证 Java 安装:

java -version
  • 1

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

vim /etc/profile
  • 1
#JAVA_HOME 的内容根据具体安装jdk的路径替换
JAVA_HOME=/usr/lib/jvm/java-11-openjdk
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
  • 1
  • 2
  • 3
  • 4
  • 5

5.使环境变量生效

source /etc/profile
  • 1

安装Maven

1.可以在 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
  • 1

3.解压

unzip apache-maven-3.5.4-bin.zip
  • 1

修改名称

mv apache-maven-3.5.4 maven3.5
  • 1

4.配置环境变量

vim /etc/profile
  • 1
JAVA_HOME=/usr/lib/jvm/java-11-openjdk
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
MAVEN_HOME=/usr/local/software/maven3.5
PATH=$PATH:$MAVEN_HOME/bin
export PATH JAVA_HOME CLASSPATH MAVEN_HOME
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

5.使环境变量生效

source /etc/profile
  • 1

3.springboot项目构建和打包docker

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

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

FROM adoptopenjdk/openjdk11:jre11u-nightly

ADD target/demo.jar demo.jar

ENTRYPOINT ["java","-jar","/demo.jar"]
  • 1
  • 2
  • 3
  • 4
  • 5

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

执行命令

mvn clean install
  • 1

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

docker build -t demo:1.0 .
  • 1

查看镜像列表

docker images
  • 1

启动

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

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:[镜像版本号]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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=*****
  • 1
  • 2
  • 3

创建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
  • 1

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

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: k8sdemo
  name: k8sdemo
spec:
  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: {}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

创建控制器

kubectl apply -f demo-k8s.yaml
  • 1

创建service, nodePort类型

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

测试访问

查看端口

kubectl get svc
  • 1

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

成功!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/57782
推荐阅读
相关标签
  

闽ICP备14008679号