k8s springboot 文件_k8s之根据tag发布spring boot项目

#(1)根据dockerfile构建基础镜像

1)dockerfile

#mkdir /temp/basic

#cd /temp/basic

#cat dockerfile

FROM java:8

MAINTAINER wangfang

RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \

&& echo 'Asia/Shanghai' >/etc/timezone

2)构建

docker build registry.cn-hangzhou.aliyuncs.com/wangfang-k8s/java:v1 .

docker push registry.cn-hangzhou.aliyuncs.com/wangfang-k8s/java:v1

#(2)根据打包生成的jar包生成新的dockerfile文件

1)dockerfile

#mkdir /temp/release; cd /temp/release

#cat dockerfile

FROM registry.cn-hangzhou.aliyuncs.com/wangfang-k8s/java:v1

ADD demo-0.0.1-SNAPSHOT.jar /

WORKDIR /

EXPOSE 8080

ENTRYPOINT ["java","-jar","demo-0.0.1-SNAPSHOT.jar"]

#(3)准备项目的资源配置清单

1)deployment对象资源配置清单文件

#cd /temp/release

# cat springboot-test.yaml

apiVersion: apps/v1beta2

kind: Deployment

metadata:

name: springboot-test-deployment

spec:

strategy:

rollingUpdate:

maxSurge: 25%

maxUnavailable: 25%

type: RollingUpdate

replicas: 2

selector:

matchLabels:

app: springboot-test

template:

metadata:

labels:

app: springboot-test

spec:

containers:

- name: springboot-test

image: registry.cn-hangzhou.aliyuncs.com/wangfang-k8s/springboot-test:tag

ports:

- containerPort: 8080

resources:

requests:

memory: "256Mi"

cpu: "256m"

limits:

memory: "512Mi"

cpu: "512m"

livenessProbe:

httpGet:

path: /

port: 8080

initialDelaySeconds: 20

periodSeconds: 3

successThreshold: 1

failureThreshold: 3

readinessProbe:

httpGet:

path: /

port: 8080

initialDelaySeconds: 20

periodSeconds: 3

successThreshold: 1

failureThreshold: 3

2)service对象资源配置清单文件

# cat springboot-test-service.yaml

apiVersion: v1

kind: Service

metadata:

name: springboot-test-service

spec:

selector:

app: springboot-test

type: NodePort

ports:

- name: http

protocol: TCP

port: 8080

targetPort: 8080

nodePort: 33333

type: NodePort

#(3)配置jenkins

1)丢弃旧的构建

2)参数化构建过程

3)配置tag

4)配置git仓库地址

5)配置打包命令

6)ssh到jenkins服务器, 这台机器我配置的也是kubectl客户端;

命令说明:

把打包生成的jar包拷贝到工作目录, 根据tag构建新的镜像,

实验演示我是推送到阿里云的容器镜像仓库, 生产环境建议部署habor开源镜像仓库, 速度更快

然后根据tag把资源配置的tag里面替换成真实的tag;

最后根据资源配置清单文件发布项目

cd /temp/release

\cp /var/lib/jenkins/workspace/test/target/demo-0.0.1-SNAPSHOT.jar .

docker build -t registry.cn-hangzhou.aliyuncs.com/wangfang-k8s/springboot-test:${tag} .

docker login --username=your_name registry.cn-hangzhou.aliyuncs.com --password=your_password

docker push registry.cn-hangzhou.aliyuncs.com/wangfang-k8s/springboot-test:${tag}

sed -ri "s/tag/${tag}/g" springboot-test.yaml

kubectl apply -f .

注意: 第一次发布项目, 使用的是sed替换和apply发布项目; 第一次之后把sed和apply方式修改成set image发布项目

kubectl set image deployment deployment_name container_name=image:version

#(4)测试

1)修改源代码如下, 同时提交到git仓库和打tag

2)开始构建项目

pod容器创建成功

发布的tag的版本

访问资源, 确实是修改后的资源

3)修改资源进行第二次发布

上传到git远程仓库

创建tag并上传到git仓库

4)修改jenkins为滚动发布, 不使用资源配置清单

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值