kubernetes deployment 使用相同tag发布新版本

默认情况下使用deployment发布新版本发布是要使用新的镜像tag

先演示一下常规部署

准备Dockerfile

FROM nginx

ENV app_version=v1

传镜像到私库里面

docker login -u <USER> -p <PASSWORD> docker-registry.default.svc:5000
docker build -t=docker-registry.default.svc:5000/default/nginx:v1 .
docker push docker-registry.default.svc:5000/default/nginx:v1

准备deployment配置 nginx.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  namespace: default
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 3
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: docker-registry.default.svc:5000/default/nginx:v1
          ports:
            - containerPort: 80
          securityContext:
            privileged: true

 导入配置

kubectl create -f nginx.yaml

更新应用

Dockerfile

FROM nginx

ENV app_version=v2

传镜像到私库里面

docker login -u <USER> -p <PASSWORD> docker-registry.default.svc:5000
docker build -t=docker-registry.default.svc:5000/default/nginx:v2 .
docker push docker-registry.default.svc:5000/default/nginx:v2

更新deployment镜像

kubectl set image deployment/nginx nginx=docker-registry.default.svc:5000/default/nginx:v2

看一下deployment的版本,发现已经有两个版本了

扫描二维码关注公众号,回复: 10569290 查看本文章
kubectl rollout history deployment/nginx -n default
deployments "nginx"
REVISION  CHANGE-CAUSE
1         <none>
2         <none>

猜你喜欢

转载自www.cnblogs.com/37yan/p/12654591.html