springboot2.7+docker制作镜像+k8s部署(更新)应用

第一步: docker制作镜像和上传镜像命令如下

准备工作:alibaba cloud linux 2 上安装docker并将项目springboot-k8s.jar上传linux目录
开始服务器执行docker命令,制作镜像和上传镜像到阿里云镜像仓库

1 根据Dockerfile制作镜像: docker build -f /usr/local/java/springboot-demo/Dockerfile .
2 指定镜像名称和tag :docker build -t springboot-k8s/springboot-k8s:2.0 .
3 登录镜像仓库 :docker login --username=aliyun0398513152 rz-dt-image-server-registry.cn-shanghai.cr.aliyuncs.com
4 制作镜像多标签
docker tag a6b447afc5a8 rz-dt-image-server-registry.cn-shanghai.cr.aliyuncs.com/rz-dt/springboot-k8s:2.0
5 上传镜像
docker push rz-dt-image-server-registry.cn-shanghai.cr.aliyuncs.com/rz-dt/springboot-k8s:2.0




Dockerfile项目根目录下文件内容如下:
#基础镜像,如果本地仓库没有,会从远程仓库拉取 openjdk:8
FROM openjdk:17
#暴露端口
EXPOSE 8080
#容器中创建目录
RUN mkdir -p /usr/local/cenobitor
#编译后的jar包copy到容器中创建到目录内
COPY target/springboot-k8s.jar /usr/local/cenobitor/app.jar
#指定容器启动时要执行的命令
ENTRYPOINT ["java","-jar","/usr/local/cenobitor/app.jar"]






第二步: window10或者centos7上 安装kubectl 客户端部署服务以及滚动更新:

springboot-k8s.yaml 部署文件内容如下(同时创建service和pod和deployment):

apiVersion: v1
kind: Service
metadata:
  name: springboot-k8s
  namespace: rz-dt
  labels:
    app: springboot-k8s
spec:
  type: NodePort
  ports:
    - port: 8080
      nodePort: 30090 #service对外开放端口
  selector:
    app: springboot-k8s
---
apiVersion: apps/v1
kind: Deployment #对象类型
metadata:
  name: springboot-k8s #名称
  namespace: rz-dt
  labels:
    app: springboot-k8s #标注
spec:
  replicas: 1 #运行容器的副本数,修改这里可以快速修改分布式节点数量
  selector:
    matchLabels:
      app: springboot-k8s
  template:
    metadata:
      labels:
        app: springboot-k8s
    spec:
      containers: #docker容器的配置
        - name: springboot-k8s
          image: rz-dt-image-server-registry.cn-shanghai.cr.aliyuncs.com/rz-dt/springboot-k8s:2.0 # pull镜像的地址 ip:prot/dir/images:tag
          imagePullPolicy: IfNotPresent #pull镜像时机,
          ports:
            - containerPort: 8080 #容器对外开放端口,需与springboot配置文件一致
      #从私有仓库拉取镜像凭证
      imagePullSecrets:
        - name: rz-dt-miyue


kubectl set image deployments/springboot-k8s springboot-k8s=jocatalin/springboot-k8s:2.0 -n rz-dt
kubectl set image deployments/springboot-k8s springboot-k8s=jocatalin/springboot-k8s:2022-10-09-16-16 -n rz-dt
kubectl apply -f springboot-k8s.yaml 



springboot2.7+docker制作镜像+k8s部署(更新)应用_第1张图片

springboot2.7+docker制作镜像+k8s部署(更新)应用_第2张图片

win10 k8s客户端端执行命令:

springboot2.7+docker制作镜像+k8s部署(更新)应用_第3张图片

alibaba cloud linux 2 端docker执行命令:

springboot2.7+docker制作镜像+k8s部署(更新)应用_第4张图片

springboot2.7+docker制作镜像+k8s部署(更新)应用_第5张图片

springboot2.7+docker制作镜像+k8s部署(更新)应用_第6张图片

你可能感兴趣的:(docker,kubernetes,java)