- 准备工作依赖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文件内容如下:
- "1.0" encoding="UTF-8"?>
"http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
-
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项目服务-Java文档类资源-CSDN下载