kubectl基础命令详解(二)

  • Post author:
  • Post category:其他




1,金丝雀发布(canary release)

Deployment控制器支持自定义控制更新过程中的滚动节奏,如“暂停(pause)”或“继续(resume)”更新操作。

金丝雀发布过程:

比如等待第一批新pod资源创建完成后,立即暂停更新过程,此时仅存在一部分新版本的应用,主体还是旧版本,然后筛选一小部分的用户请求路由到新版本的pod应用,继续观察能否稳定地按期望的方式运行。确定没问题后继续完成后续的滚动更新,否则立即回滚更新操作。

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

我们先查看我们创建的nginx服务的版本

kubectl describe deployment

在这里插入图片描述

另开一个终端监控pods

kubectl get pods -w

在这里插入图片描述

更新版本到1.16 ,并且用金丝雀暂停

kubectl set image deployment/nginx nginx=nginx:1.16 && kubectl rollout pause deployment/nginx

在这里插入图片描述
然后去监控窗口看

在这里插入图片描述

创建了一个新的资源,而旧的并没被删除,因为我们pause了

kubectl get pods -o wide

查看新创建pod的ip

在这里插入图片描述

kubectl rollout status deployment/nginx

观察更新状态

在这里插入图片描述

我们用

curl http://10.244.1.4
curl -I 10.244.1.4

上面的

检查服务是否正常

在这里插入图片描述

在这里插入图片描述

如果都没问题

继续更新

kubectl rollout resume deployment/nginx

在这里插入图片描述

监控端的原pod就会显示Terminating

在这里插入图片描述

然后查看下版本

kubectl describe deployment

在这里插入图片描述

ok



2,声明式管理方法:

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

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

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

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


kubectl create 和kubelctl apply 的区别

kubectl create -f xxxx.yaml 无法更新,只能创建,必须先delete对应的yaml

kubectl apply -f xxxx.yaml 可以更新,可以创建,可以重复使用

如果yaml文件中的kind值为deployment,那么上面这两个命令都可以创建一个deployment,生成相应数量的pod

区别:

kubectl create:

(1)kubectl create 命令,是先删除所有现有的东西,重新根据yaml文件生成新的。所以要求是yaml文件中的配置必须是完整的

(2)kubectl create命令,用同一个yaml文件执行替换replace命令,将不会成功。

kubectl apply:

kubectl apply命令,根据配置文件里面写出来的内容,升级现有的,所以yaml文件的内容可以只写需要升级的属性

查看资源配置清单命令:

kubectl get deployment nginx -o yaml

在这里插入图片描述

解释资源配置清单的命令:

kubectl explain depolyment.metadata //解释deployment.metadata信息

kubectl get service nginx -o yaml

kubectl explain service.metadata

在这里插入图片描述


service的用法也相同

修改资源配置清单和应用命令:

离线修改:

修改yaml文件,并用kubectl apply -f xxxx.yaml 文件使之生效

注意:当apply不生效时,先使用delete清除资源,再apply创建资源

kubectl get service nginx -o yaml > nginx-svc.yaml

vim nginx-svc.yaml

#修改port:8080

kubectl delete -f nginx-svc.yaml

kubectl apply -f nginx-svc.yaml

kubectl get svc

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在线修改:

直接使用kubectl edit service nginx

在线编辑资源配置清单并保存退出即时生效(如port:888)

PS:此修改方式不会对yaml文件内容修改



版权声明:本文为OSoooo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。