k8s部署springboot项目
Posted 爱上口袋的天空
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s部署springboot项目相关的知识,希望对你有一定的参考价值。
1.首先我们将项目打成jar包
2.制作Dockerfile文件,生成jdk镜像,我们这里总共两台服务器,k8s-master和k8s-node,全部要操作
- 将jdk上传到Linux服务器上
- 编写Dockerfile文件
内容如下:FROM centos:latest MAINTAINER kgf ADD jdk-8u191-linux-x64.tar.gz /usr/local/java ENV JAVA_HOME /usr/local/java/jdk1.8.0_191 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV PATH $PATH:$JAVA_HOME/bin CMD java -version
- 构建jdk镜像
命令:docker build -t jdk1.8.0_191 .
3.创建项目镜像(两台都操作)
- 上传我们的jar包并且创建Dockerfile文件
内容如下:#基于我们刚刚创建的jdk镜像 FROM jdk1.8.0_191 MAINTAINER kgf ADD springboot-test-demo.jar /opt RUN chmod +x /opt/springboot-test-demo.jar #运行jar CMD java -jar /opt/springboot-test-demo.jar
- 构建项目镜像
命令:docker build -t springboot-test-demo .
- 空运行测试生成我们的yaml文件
1)命令:
kubectl create deployment deployment名称 --image=我们项目的镜像名称 --dry-run -o yaml > 要生成的yaml文件
注意:--dry-run表示空运行测试,不会真正的运行
-o 表示测试输出
2)执行命令生成我们的yaml模板
命令:kubectl create deployment springboot-k8s --image=springboot-test-demo --dry-run -o yaml > deploy.yaml
文件的内容如下:apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: springboot-k8s name: springboot-k8s spec: replicas: 1 selector: matchLabels: app: springboot-k8s strategy: {} template: metadata: creationTimestamp: null labels: app: springboot-k8s spec: containers: - image: springboot-test-demo name: springboot-test-demo resources: {} status: {}
4.下面我们以yaml文件的方式部署springboot项目
- 对上面生成的deploy.yaml文件进行修改,让它使用本地的镜像,因为它默认是去中心仓库拉取镜像的
- 通过命令去操作deploy.yaml文件
命令:kubectl apply -f deploy.yaml
- 暴露端口
命令:kubectl expose deployment springboot-k8s --port=8080 --type=NodePort- 通过浏览器去查看效果,两台服务器都可以访问,注意:目前这里的对外端口是不固定的,后面我们可以通过ingress组件对外暴露一个固定的端口
以上是关于k8s部署springboot项目的主要内容,如果未能解决你的问题,请参考以下文章