开发者社区 > 云原生 > 微服务 > 正文

Higress中问个关于灰度发布的问题这个权重到时候是咋计算的?

Higress中问个关于灰度发布的问题,如果我有N条ingress,分别设置了权重,怎么确定谁跟谁是一组里的。我看也没个分组的概念,这个权重到时候是咋计算的?

展开
收起
我睡觉不困 2024-08-20 12:43:04 38 0
1 条回答
写回答
取消 提交回答
  • 我们给到的建议是:
    在Higress中,灰度发布的权重配置是通过Ingress资源上的注解来实现的,特别是使用nginx.ingress.kubernetes.io/canary-weight和nginx.ingress.kubernetes.io/canary-weight-total这两个注解。尽管Higress的文档中没有直接提及分组的概念,但可以通过合理配置这些注解来实现不同Ingress规则之间的权重分配,从而达到灰度发布的目的。
    分析问题原因

    权重分配原理:灰度发布的关键在于如何根据配置的权重比例将流量分配到不同的服务版本上。每个Ingress规则可以看作一个独立的路由配置,其上的权重注解定义了该路由所指向的服务应接收的流量比例。
    缺乏明确分组机制:由于Higress文档中没有直接描述如何对Ingress规则进行分组以实现一组服务内部的权重分配,这可能导致混淆,不清楚如何确保特定的Ingress规则集被视为同一灰度发布组。

    解决方案步骤
    尽管没有直接的“分组”概念,但你可以通过以下方式实现类似分组的效果,以控制哪些Ingress规则应被视作同一灰度发布策略的一部分:

    共同前缀或标签:为属于同一灰度发布组的所有Ingress规则使用相同的路径前缀或者打上相同的标签。虽然这不是直接的分组,但可以帮助管理和识别哪些规则应当一起考虑其权重配置。

    权重分配:对于每个属于同一灰度发布策略的Ingress规则,使用nginx.ingress.kubernetes.io/canary-weight注解设置其期望的权重值。确保所有相关规则的权重之和与你计划的总权重相匹配,这通常通过nginx.ingress.kubernetes.io/canary-weight-total来间接控制,或者直接计算各规则权重之和。

    验证与调整:部署并验证配置,确保流量按照预期的比例分配到各个服务版本。可能需要根据实际流量监控数据进行微调,以达到理想的灰度效果。

    解释

    为什么使用相同前缀或标签:这种方式帮助逻辑上组织和区分不同灰度版本的路由规则,便于管理和理解复杂的灰度发布配置。
    权重配置的重要性:通过精细控制每个服务版本的权重,可以灵活地调整新老版本间的流量比例,以满足不同的测试或发布需求。
    验证的必要性:由于网络环境和实际流量模式的复杂性,理论上的配置可能与实际情况有所偏差,因此验证与调整是确保灰度发布成功的关键环节。

    综上所述,虽然Higress没有直接提供灰度发布分组功能,但通过合理的规划和配置,仍然能够有效实施灰度发布策略。务必注意监控和调整,以保证部署过程中的服务质量。

    参考链接:
    *专家经验:Higress的Ingress Annotation 配置说明此回答整理自钉群"Higress 社区交流1群(2群: 30735012403)"

    2024-08-20 13:40:17
    赞同 1 展开评论 打赏
问答分类:
问答地址:

为微服务建设降本增效,为微服务落地保驾护航。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载