springboot2.7+docker制作镜像+k8s部署(更新)应用
springboot2.7 docker build构建镜像上传镜像,kubectl apply -f 部署应用
·
第一步: 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
win10 k8s客户端端执行命令:
alibaba cloud linux 2 端docker执行命令:
更多推荐
已为社区贡献23条内容
所有评论(0)