• **部署环境和流程 : **

  • 阿里云Linux CentOS 7.X服务器,安装好JDK11、Maven、Docker

  • 代码上传阿里云服务器,maven打包,docker构建镜像

  • 推送构建好的镜像到私有镜像仓库

  • K8S部署服务对外暴露服务

image.png

  • 安装Docker

  • 安装JDK11

Download the Latest Java LTS Free
image.png

  1. jdk-11.0.23_linux-x64_bin.tar.gz上传至目录/usr/local/software/
  2. 解压 tar -zxvf jdk-11.0.23_linux-x64_bin.tar.gz( 记得进入此目录 )
  3. 重命名 mv jdk-11.0.23 jdk11
  4. 添加环境变量 vi /etc/profile
JAVA_HOME=/usr/local/software/jdk11
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
  1. 使环境变量生效 source /etc/profile
  2. 查看JDK版本 java -version

image.png


  • 安装Maven

Index of /dist/maven/maven-3/3.6.3/binaries
image.png

  1. apache-maven-3.6.3-bin.tar.gz上传至目录/usr/local/software/
  2. 解压 tar -zxvf apache-maven-3.6.3-bin.tar.gz( 记得进入此目录 )
  3. 重命名 mv apache-maven-3.6.3 maven-3.6.3
  4. 修改环境变量 : vi /etc/profile
MAVEN_HOME=/usr/local/software/maven-3.6.3
PATH=$PATH:$MAVEN_HOME/bin

export PATH JAVA_HOME CLASSPATH MAVEN_HOME
# 上面这条命令覆盖前面部署JDK的那条
  1. 使环境变量生效 source /etc/profile
  2. 查看Maven版本 mvn -v

image.png


  • **SpringBoot项目构建和打包Docker镜像 : **
  1. idea中将项目打包成jar包后上传服务器
  2. 同时编写对应的Dockerfile文件

image.png

FROM adoptopenjdk/openjdk11:jre11u-nightly

LABEL maintainer=ccoio

COPY springboot-demo.jar /springboot-demo.jar

ENTRYPOINT ["java","-jar","/springboot-demo.jar"]
  1. 进入当前springboot-demo目录进行镜像打包

docker build -t springboot-demo:1.0.0 . # 记得后面有个点 .

  1. 启动docker run -d -it -p 8080:8080 --name=springboot-demo springboot-demo:1.0.0
  2. 查看日志docker logs -f springboot-demo
  3. 删除容器docker rm -f springboot-demo

  • **私有镜像仓库镜像推送 : **
  1. 登录镜像仓库 : docker login username : ccoio password : quan20040210
  2. 为镜像打标签 : docker tag springboot-demo:1.0.0 ccoio/ccoio:springboot-demo.1.0.0
  3. 推送镜像 : docker push ccoio/ccoio:springboot-demo.1.0.0
  • **番外 : **
  1. 拉取镜像 : docker pull ccoio/ccoio:springboot-demo.1.0.0
  2. 启动容器 : docker run -d --name springboot-demo -p 8080:8080 ccoio/ccoio:springboot-demo.1.0.0
  3. 查看日志 : docker logs -f springboot-demo

  • **K8S部署SpringBoot项目 : **

  • 步骤一:登录私有镜像仓,拉取镜像

  • 步骤二:创建deployment

  • 步骤三:暴露服务访问端口即可

  1. **创建secret : **
kubectl create secret docker-registry xdclass-docker-secret --docker-server=https://index.docker.io/v1/ --docker-username=ccoio --docker-password=quan20040210
  1. **创建deployment : **
kubectl create deployment k8sdemo --image=https://hub.docker.com/layers/ccoio/ccoio/springboot-demo.1.0.0 --dry-run=client -o yaml > xdclass-k8s.yaml
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: xdclass-docker-secret
      containers:
      - image: https://hub.docker.com/layers/ccoio/ccoio/springboot-demo.1.0.0
        name: xdclass-k8s
        resources: {}
status: {}
  1. 创建delpoyment控制器 :**kubectl apply -f xdclass-k8s.yaml**
  2. **暴露端口 : ****kubectl expose deploy k8sdemo --port=8080 --target-port=8080 --type=NodePort**
  3. **访问 : **curl ip+port** - ****192.168.100.150:8080/v1/test**
  4. **查看日志 : **kubectl get pod -o wide** - ****kubectl exec -it k8sdemo -- /bin/sh**
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐