一、准备镜像
docker pull registry.cn-beijing.aliyuncs.com/xxxx/nginx:v1
docker pull registry.cn-beijing.aliyuncs.com/xxxx/nginx:v2
二、手动编写yaml进行测试
1、创建yaml
vim roll_update.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: image-deployment
spec:
replicas: 3
template:
metadata:
labels:
app: image-update
spec:
containers:
- name: nginx
image: registry.cn-beijing.aliyuncs.com/xxxx/nginx:v1
imagePullPolicy: Always
kubectl create -f roll_update.yaml
vim service.yaml
apiVersion: v1
kind: Service
metadata:
name: image-deployment
spec:
type: NodePort
ports:
- port: 80
nodePort: 30001
selector:
app: image-update
kubectl create -f service.yaml
2、访问
curl 172.31.103.123:30001
3、更新镜像
kubectl patch deployment image-deployment --patch '{"spec": {"template": {"spec": {"containers": [{"name": "nginx","image":"registry.cn-beijing.aliyuncs.com/xxxxx/nginx:v2"}]}}}}' && kubectl rollout pause deployment image-deployment
kubectl rollout resume deployment image-deployment
curl 172.31.103.123:30001
4、回滚操作
kubectl rollout history deploy/image-deployment
kubectl rollout history deploy image-deployment --revision=7
kubectl rollout undo deploy image-deployment --to-revision=1
查看replicaset状态,可以看出现在使用的镜像版本:
kubectl get rs -owide