k8s部署springboot服务

准备工作依赖2款软件:
centos7安装Docker version 20.10.18和kubectl Version: v4.5.7
docker -v 和 kubectl version --client 查看版本
kubectl常用命令
1 验证kubectl 连接性
 kubectl cluster-info
2 查看指定命名空间pods名字
kubectl -n rz-dt get pods
3 根据pods名字查看pod日志
kubectl -n rz-dt logs --tail=20 nginx-85f7fc95c4-5rngk
4 查看应用被映射到节点哪个端口
kubectl -n rz-dt get services
5 删除Deployment|StatefulSet|Pod|Service
kubectl -n rz-dt delete Deployment springboot-k8s

本实例使用阿里云k8s和镜像仓库
<一> 新建文件目录 
/usr/local/java/k8s-springboot-demo
上传本地windows项目文件列表到centos如下:
1 /usr/local/java/k8s-springboot-demo/target/k8s-springboot-demo.jar
2 Dockerfile
3 k8s-springboot-demo.yaml

<二> 构建镜像

1 根据Dockerfile制作镜像: docker build -f /usr/local/java/k8s-springboot-demo/Dockerfile -t k8s-springboot-demo/k8s-springboot-demo:2022-11-25-12-07 .
2 指定镜像名称和tag :docker build -t k8s-springboot-demo/k8s-springboot-demo:2022-11-25-12-07 .
3 登录镜像仓库 :docker login --username=aliyun0398513152 rz-dt-image-server-registry.cn-shanghai.cr.aliyuncs.com
4 制作镜像重命名镜像
docker images 查看b66d536c80a9 
docker tag b66d536c80a9  rz-dt-image-server-registry.cn-shanghai.cr.aliyuncs.com/rz-dt/k8s-springboot-demo:2022-11-25-12-07
5 上传镜像
docker push rz-dt-image-server-registry.cn-shanghai.cr.aliyuncs.com/rz-dt/k8s-springboot-demo:2022-11-25-12-07

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


<三> 发布
3 部署命令
kubectl apply -f k8s-springboot-demo.yaml 

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


pom.xml文件内容如下:


    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.7.4
         
    
    com.example.demo
    k8s-springboot-demo
    0.0.1-SNAPSHOT
    k8s-springboot-demo
    k8s-springboot-demo for Spring Boot
    
        1.8
    
    
        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            org.projectlombok
            lombok
            1.18.22
        

    

    
        k8s-springboot-demo
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    
                        
                            org.projectlombok
                            lombok
                        
                    
                
            
            
            
                com.spotify
                
                dockerfile-maven-plugin
                1.4.10
                
                    
                        default
                        
                            build
                            push
                        
                    
                
                
                    
                    Dockerfile
                    
                    cenobitor/${project.build.finalName}
                    
                    ${project.version}
                    
                        
                        ${project.build.finalName}.jar
                    
                
            
        
    


    
        
            public
            aliyun nexus
            https://maven.aliyun.com/repository/public
            
                true
            
        
    

    
        
            public
            aliyun nexus
            https://maven.aliyun.com/repository/public
            
                true
            
            
                false
            
        
    





k8s部署springboot服务_第1张图片

k8s部署springboot服务_第2张图片

k8s部署springboot服务_第3张图片

k8s部署springboot服务_第4张图片

k8s部署springboot服务_第5张图片

k8s部署springboot服务_第6张图片

k8s部署springboot服务_第7张图片

k8s部署springboot服务_第8张图片

k8s部署springboot服务_第9张图片

k8s部署springboot服务_第10张图片

k8s部署springboot服务_第11张图片

k8s部署springboot服务_第12张图片

k8s部署springboot服务_第13张图片

k8s部署springboot服务_第14张图片

k8s部署springboot服务_第15张图片

k8s部署springboot服务_第16张图片 项目源码下载:

k8s发布springboot项目服务-Java文档类资源-CSDN下载

k8s发布springboot项目服务-Java文档类资源-CSDN下载

 k8s发布springboot项目服务-Java文档类资源-CSDN下载

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