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
posted @ 2022-03-22 13:34  践行践远  阅读(220)  评论(0)    收藏  举报