wordpress 页面 权限,优化seo深圳,免费的商城平台有哪些,烟台做网站排名目录
1.常见的发布方式
2.滚动发布
3.蓝绿发布
4.实现金丝雀发布#xff08;Canary Release#xff09;
5.声明式管理方法 1.常见的发布方式
蓝绿发布:两套环境交替升级#xff0c;旧版本保留一定时间便于回滚优点#xff1a;用户无感知#xff0c;部署和回滚速度较…目录
1.常见的发布方式
2.滚动发布
3.蓝绿发布
4.实现金丝雀发布Canary Release
5.声明式管理方法 1.常见的发布方式
蓝绿发布:两套环境交替升级旧版本保留一定时间便于回滚优点用户无感知部署和回滚速度较快缺点浪费资源成本较高
滚动发布:按批次停止老版本实例启动新版本实例。优点节约资源缺点部署和回滚速度较慢
灰度发布(金丝雀发布):根据比例将老版本升级例如80%用户访问是老版本20%用户访问是新版本优点保证整体系统稳定性如果出现问题影响范围较小缺点自动化要求较高
2.滚动发布
滚动升级方式
kubectl create -n xy101 deployment test01 --imagesoscscs/myapp:v1 --port80 --replicas3
kubectl expose -n xy101 deployment test01 --namesvc-test1 --typeNodePort --port8080 --target-port80
#创建资源和service
kubectl describe -n xy101 deployments.apps test01kubectl set image -n xy101 deployment test01 myappsoscscs/myapp:v2 3.蓝绿发布
蓝绿升级方式 通过切换负载均衡的流量来实现业务的切换
kubectl create -n xy101 deployment test1-v1 --imagesoscscs/myapp:v1 --port80 --replicas3
kubectl expose -n xy101 deployment test1-v1 --namesvc-test1 --port8080 --target-port80 --typeNodePort
kubectl create -n xy101 deployment test1-v2 --imagesoscscs/myapp:v2 --port80 --replicas3
deployment.apps/test1-v2 createdkubectl set -n xy101 selector svc svc-test1 apptest1-v2
kubectl describe -n xy101 svc svc-test1 kubectl set -n xy101 selector svc svc-test1 apptest1-v1
kubectl describe -n xy101 svc svc-test1 4.实现金丝雀发布Canary Release Deployment控制器支持自定义控制更新过程中的滚动节奏如“暂停(pause)”或“继续(resume)”更新操作。比如等待第一批新的Pod资源创建完成后立即暂停更新过程此时仅存在一部分新版本的应用主体部分还是旧的版本。然后再筛选一小部分的用户请求路由到新版本的Pod应用继续观察能否稳定地按期望的方式运行。确定没问题之后再继续完成余下的Pod资源滚动更新否则立即回滚更新操作。这就是所谓的金丝雀发布。 kubectl create -n xy101 deployment myapp-v1 --imagesoscscs/myapp:v1 --port80 --replicas3
kubectl expose -n xy101 deployment myapp-v --namesvc-myapp --port8080 --target-port80 --typeNodePortkubectl set image -n xy101 deployment myapp-v1 myappsoscscs/myapp:v2 kubectl rollout pause deployment myapp-v1 -n xy101 #kubectl rollout pause deployment myapp-v1 -n xy101 执行完前面的就暂停kubectl get -n xy101 pods -o wide -w #监控状态kubectl rollout status -n xy101 deployment myapp-v1 #观察更新状态kubectl rollout resume -n xy101 deployment myapp-v1 kubectl rollout pause -n xy101 deployment myapp-v1 #确保更新的pod没问题了继续更新还是指定更新一个如何暂停 kubectl rollout resume -n xy101 deployment myapp-v1 #确保更新的pod没问题了继续更新会一次性都更新结束 5.声明式管理方法 1.适合于对资源的修改操作 2.声明式资源管理方法依赖于资源配置清单文件对资源进行管理 资源配置清单文件有两种格式yaml人性化易读json易于api接口解析 3.对资源的管理是通过事先定义在统一资源配置清单内再通过陈述式命令应用到k8s集群里 4.语法格式kubectl create/apply/delete -f xxxx.yamlapply的作用创建并更新 查看资源配置清单
kubectl get 资源类型 资源名称 -o yaml解释资源配置清单
kubectl explain 资源名称.字段名称声明式修改资源配置清单并应用的两种方式 离线修改
cd -
mkdir day3
kubectl get -n xy101 svc svc-myapp -o yaml svc.yaml
ls
vim svc.yaml #删除多余内容只保存下图展示kubectl get -n xy101 svc vim svc.yaml
#直接对导出的yaml文件进行修改kubectl apply -f svc.yaml #进行更新操作但是此时会报错无法修改因为该service资源不是通过该svc.yaml文件创建的因此无法更新会报错。我们需要进行操作将原先的service进行删除然后在进行更新
可以使用kubectl delete -n xy101 svc svc-myapp进行删除也可以通过kubectl delete -f svc.yaml该命令直接删除因为svc.yaml配置文件中已经定义了该资源的各种参数直接指定这个文件删除即可kubectl delete -f svc.yaml kubectl apply -f svc.yaml #删除并更新
kubectl get -n xy101 svc vim svc.yamlkubectl apply -f svc.yaml #此时这个service文件是通过这个yaml文件创建的因此可以直接使用该命令进行更新操作 在线修改
直接使用 kubectl edit service 资源名称 在线编辑资源配置清单并保存退出即时生效
PS此修改方式不会对yaml文件内容修改
#但是此种方法并不是所有字段都能进行修改若遇到 不能修改的字段则直接选择离线模式进行修改kubectl edit -n xy101 svc svc-myapp
进行修改保存 通过声明式修改方式实现金丝雀发布(通过控制副本数实现) 重新创建资源、service
kubectl create -n xy101 deployment myapp-v1 --imagesoscscs/myapp:v1 --port80 --replicas3
kubectl expose -n xy101 deployment myapp-v1 --namesvc-myapp --port80 --target-port80 --typeNodePortkubectl get -n xy101 deployments.apps myapp-v1 -o yaml deploy.yamlvim deploy.yaml
修改9行 app: myapp-v2
98行 replicas: 1
92行 name: myapp-v2
115行 - image: soscscs/myapp:v2kubectl apply -f deploy.yaml
kubectl get -n xy101 all kubectl scale -n xy101 deployment myapp-v1 --replicas2 kubectl scale -n xy101 deployment myapp-v2 --replicas2 #通过减少v1的副本数增加v2的副本数实现执行后无问题在继续下一步
kubectl get -n xy101 all
kubectl scale -n xy101 deployment myapp-v1 --replicas0 kubectl scale -n xy101 deployment myapp-v2 --replicas3
kubectl get -n xy101 all