Open wklken opened 1 year ago
方案1:
service导流到endpoints时会选择分发流量到新老deployment
问题: 流量不可控
方案2:
当前使用的TKE clb-controller 是不支持流量切分的, 但是bcs提供的bcs-ingress-controller可以控制流量权重, 通过修改clb的rs权重来实现
风险:
怎么平滑升级是个问题
应用本身的问题:
基本方案:
疑问:
saas 调用权限中心后台没有走网关, 如何切换
BCS rollout
蓝绿部署理解
配置一个rollout更新的策略, 对应的operator会拦截deployment的正常发布
deployment更新时, 会按照策略生成金丝雀的deployment, 按步骤比例生产pod数量, 此时会执行check hook, check不通过, pod状态是not ready, 直到check ok, pod 状态 ready, 此时通过service会进来部分流量, 灰度验证
如果策略check失败, 可以执行回退到上一步, 回滚, 暂停三类选择
hook
定义了执行hook检查时的逻辑方法, 当前支持通过web get的方式来执行检查
[ ] 需要等BCS支持exec的hook方法用于执行冒烟脚本来确定pod状态
当前iam容器后部署主要资源有
如使用BCS rollout 会有问题
结论: 如使用Rollout的方式灰度, 一旦需要会退到发布前的状态, 需要手动执行很多的资源变更, 需要对灰度前与灰度后的部署状态有一个完整的记录, 方便回退到灰度前状态, 操作复杂, 变更出错的风险非常大
如果使用蓝绿的方式会不会更好? 完全部署两套, 命名空间/redis等层面隔离 部署完, 冒烟, 之后再按比例切流量(网关入口), 最后顶掉
提升可用率, 降低风险