本文主要是介绍【kubernetes】蓝绿部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
概念:
蓝绿部署中,一共有两套系统:一套是正在提供服务系统,标记为“绿色”;另一套是准备发布的系统,标记为“蓝色”。
两套系统都是功能完善的、正在运行的系统,只是系统版本和对外服务情况不同。
应用:
通过创建service服务 + 两套系统,可以做发布前的应用测试。
优缺点:
优点:
1、更新过程无需停机,风险较少
2、回滚方便,只需要更改路由或者切换DNS服务器,效率较高。
缺点:
1、如果新版本中基础服务出现问题,或者新版本有问题,会瞬间影响全网用户。
2、需要部署两套机器,对资源或硬件成本较高,费用开销大。
3、在非隔离的机器(Docker、VM)上操作时,可能会导致蓝绿环境被摧毁风险
4、负载均衡器/反向代理/路由/DNS处理不当,将导致流量没有切换过来情况出现
案例:
部署镜像下载:蓝绿部署环境.zip
创建命名空间:
kubectl create namespace[ns] blue-green
第一步:部署绿色系统
# vim lv.yamlapiVersion: apps/v1
kind: Deployment
metadata:name: myapp-v1namespace: blue-green
spec:replicas: 3selector:matchLabels:app: myappversion: v2template:metadata:labels:app: myappversion: v2spec:containers:- name: myappimage: janakiramm/myapp:v2imagePullPolicy: IfNotPresentports:- containerPort: 80
第二步:部署蓝色系统
# vim lan.yamlapiVersion: apps/v1
kind: Deployment
metadata:name: myapp-v2namespace: blue-green
spec:replicas: 3selector:matchLabels:app: myappversion: v1template:metadata:labels:app: myappversion: v1spec:containers:- name: myappimage: janakiramm/myapp:v1imagePullPolicy: IfNotPresentports:- containerPort: 80
第三步:部署service服务
# vim service-lanlv.yamlapiVersion: v1
kind: Service
metadata:name: myapp-lan-lvnamespace: blue-greenlabels:app: myapp
spec:type: NodePortports:- port: 80nodePort: 30062name: httpselector:app: myappversion: v1 # 修改切换 v1 和 v2 切换蓝绿部署
通过修改版本来访问,http://192.168.40.180:30062/ ,切换不一样的版本。
这篇关于【kubernetes】蓝绿部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!