k8s:服务的更新与回档
基本了解
首先,我们要知道更新回档的本质,就是不同镜像的更新和替换
第一步:创建私有仓库
创建registry私有仓库
docker run -d --name registry --restart=always -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry:2
编写daemon.json文件
{
"registry-mirrors": ["https://2e3mum3s.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"insecure-registries": ["192.168.100.141:5000"]
}
将文件分发给其他机器
scp /etc/docker/daemon.json root@192.168.100.142:/etc/docker/daemon.json
scp /etc/docker/daemon.json root@192.168.100.143:/etc/docker/daemon.json
将所有主机的docker进行重启
systemctrl daemon-relod
systemctl restart docker
第二步:制作镜像并进行上传
# 返回主目录
cd ~
# 创建一个目录
mkdir Dockerfile
# 创建文件
vim dockerfile
制作模板一
创建dockerfile文件,制作私人镜像
FROM httpd
COPY ./index.html /usr/local/apache2/htdocs
制作index.html
cd ~/Dcokerfiel
echo "This is version one" > index.html
制作为镜像
docker build -t 192.168.100.141:5000/job_web:v1.0 -f dockerfile .
制作模板二
更改index.html文件,更改为模板二
cd ~/Dcokerfiel
echo "This is version 2" > index.html
制作为镜像
docker build -t 192.168.100.141:5000/job_web:v2.0 -f dockerfile .
制作模板三
修改index文件,更改为模板三
cd ~/Dcokerfiel
echo "This is version 3" > index.html
制作为镜像
docker build -t 192.168.100.141:5000/job_web:v3.0 -f dockerfile .
上传到私有仓库
docker push 192.168.100.141:5000/job_web:v1.0
docker push 192.168.100.141:5000/job_web:v2.0
docker push 192.168.100.141:5000/job_web:v3.0
第三步:制作yaml文件,并制作多个版本
apiVersion: apps/v1
kind: Deployment
metadata:
name: demoweb
spec:
selector:
matchLabels:
demo: web
template:
metadata:
labels:
demo: web
spec:
containers:
- name: demoweb
image: 192.168.100.141:5000/job_web:v1.0
制作为镜像,并记录版本
kubectl apply -f test_httpd.yaml --record
制作镜像后修改yaml文件,将镜像版本更改,并再次制作和记录
...
image: 192.168.100.141:5000/job_web:v2.0
kubectl apply -f test_httpd.yaml --record
...
image: 192.168.100.141:5000/job_web:v3.0
kubectl apply -f test_httpd.yaml --record
第三步:查看镜像历史版本
# 查看当前资源的历史版本
kubectl rollout history deployment demoweb
# 进行验证
curl 10.244.1.48
>This is version 3
# 更新版本
kubectl rollout undo deployment demoweb --to-revision=1
This is version one

浙公网安备 33010602011771号