声明式资源管理方法

K8S

文章目录

  • K8S
  • 一、灰度发布(金丝雀发布)
            • 金丝雀发布(Canary Release )
      • (1)更新deployment的版本,并配置暂停deployment
      • (2)监控更新的过程,可以看到已经新增了一个资源,但是并未按照预期的状态去删除一个旧的资源,就是因为使用了pause暂停命令
      • (3)确保更新的pod没问题了,继续更新
      • (4)查看最后的更新情况
  • 二、声明式管理方法
            • 查看资源配置清单
            • 解释资源配置清单
            • 修改资源配置清单并应用
          • 删除资源配置清单

一、灰度发布(金丝雀发布)

金丝雀发布(Canary Release )

Deployment控制器支持自定义控制更新过程中的滚动节奏,如了暂停(pause)”或“继续(resume)"更新操作。比如等待第一批新的Pod资源创建完成后立即暂停更新过程,此时,仅存在一部分新版本的应用,主体部分还是旧的版本。然后,再筛选一小部分的用户请求路由到新版本的Pod应用,继续观察能否稳定地按期望的方式运行。确定没问题之后再继续完成余下的Pod资源滚动更新,否则立即回滚更新操作。这就是所谓的金丝雀发布。

声明式资源管理方法_第1张图片

(1)更新deployment的版本,并配置暂停deployment

curl -I 10.244.2.16
curl -I 192.168.100.110:32127

HTTP/1.1 200 OK
Server: nginx/1.14.2
Date: Wed, 18 Aug 2021 12:45:02 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 04 Dec 2018 14:44:49 GMT
Connection: keep-alive
ETag: "5c0692e1-264"
Accept-Ranges: bytes

声明式资源管理方法_第2张图片

kubectl set image deployment/nginx nginx=nginx:1.14 && kubectl rollout pause deployment/nginx
kubectl rollout status deployment/nginx		#观察更新状态

在这里插入图片描述

(2)监控更新的过程,可以看到已经新增了一个资源,但是并未按照预期的状态去删除一个旧的资源,就是因为使用了pause暂停命令

kubectl get pods -w
curl -I 10.244.2.16
curl -I 192.168.100.110:32127

声明式资源管理方法_第3张图片
声明式资源管理方法_第4张图片

(3)确保更新的pod没问题了,继续更新

kubectl rollout resume deployment/nginx

在这里插入图片描述

(4)查看最后的更新情况

kubectl get pods -w
curl -I 10.244.2.18
curl -I 192.168.100.110:32127

声明式资源管理方法_第5张图片
声明式资源管理方法_第6张图片

二、声明式管理方法

1.适合于对资源的修改操作

2.声明式资源管理方法依赖于资源配置清单文件对资源进行管理
资源配置清单文件有两种格式:yaml(人性化,易读),json(易于api接口解析)

3.对资源的管理,是通过事先定义在统一资源配置清单内,再通过陈述式命令应用到k8s集群里

4.语法格式: kubectl create/apply/delete -f xxxx.yaml

查看资源配置清单
kubectl get deployment nginx -o yaml

声明式资源管理方法_第7张图片

解释资源配置清单
kubectl get all -n default

kubectl explain deployment.metadata

kubectl get service nginx-service -o yaml
kubectl explain service.metadata

声明式资源管理方法_第8张图片
声明式资源管理方法_第9张图片
声明式资源管理方法_第10张图片

修改资源配置清单并应用
离线修改
修改yaml文件,并用kubectl apply -f xxx.yaml 文件使之生效
注意:当apply不生效时,先使用delete清除资源,再apply创建 资源

kubectl get service nginx-service -o yaml > nginx-svc.yaml
vim nginx-svc.yaml					#修改port: 8090
kubectl delete -f nginx-svc.yaml
kubectl apply -f nginx-svc.yaml
kubectl get svc

声明式资源管理方法_第11张图片
声明式资源管理方法_第12张图片

在线修改:
直接使用kubectl edit service nginx 在线编辑资源配置清单并保存退出即时生效( 如port: 888)
PS:此修改方式不会对yaml文件内容修改

删除资源配置清单
陈述式删除:
kubectl delete service nginx

声明式删除:
kubectl delete -f nginx-svc.yaml

你可能感兴趣的:(K8S,自动化运维,云计算)