Argocd - 分析和渐进式交付

#Argo Rollouts中的分析(Analysis)是用于根据阶段性交付效果的测量结果来推动渐进式交付的机制
    ◼ 分析机制通过分析模板(AnalysisTemplate CRD)定义,而后在Rollout中调用它
    ◼ 运行某次特定的交付过程时,Argo Rollouts会将该Rollout调用的AnalysisTemplate实例化为AnalysisRun(CRD)

AnalysisTemplate CRD资源规范

#AnalysisTemplate期望状态中的可用字段
    ◼ metrics <[]Object>:必选字段,定义用于对交付效果进行分析的指标,常用的嵌套字段有如下几个
        ◆name <string>:指标名称,必选字段;
        ◆provider <Object>:指标供应方,支持prometheus、web、job和graphite等,使用prometheus时支持嵌套如下字段
            ⚫ address <string>:Prometheus服务的访问入口
            ⚫ query <string>:向Prometheus服务发起的查询请求(PromQL)
        ◆successCondition <string>:测试结果为“成功”的条件表达式
        ◆interval <string>:多次测试时的测试间隔时长
        ◆count <integer>:总共测试的次数
    ◼ args <[]Object>:模板参数,模板内部引用的格式为“{{args.NAME}}”;可在调用该模板时对其赋值;
        ◆name <string>
        ◆value <string>
        ◆valueFrom <Object>
    ◼ dryRun <[]Object>:运行于dryRun模式的metric列表,这些metric的结果不会影响最终分析结果
        ◆metricName <string>
    ◼ measurementRetention <[]Object>:测量结果历史的保留数,dryRun模式的参数也支持历史结果保留
        ◆metricName <string>:指标名称
        ◆limit <integer>:保留数量

AnalysisTemplate资源与AnalysisRun CRD

#示例说明
    ◼ 定义了一个名为service-name的参数
        ◆用于传递要测量的服务的名称
    ◼ 定义了success-rate指标
        ◆测试指定服务的请求成功率
    ◼ 每隔20s查询一次prometheus服务,共执行三次
    ◼ 成功条件为:第1个指标(下标为0)的结果值大于等于0.95
    ◼ 遇到3次错误即终止进一步的测试
#AnalysisRun CRD
    ◼ 配置格式与AnalysisTemplaste大致相同,所不同的是,AnalysisRun用于调用并实例化分析模板

 

posted @ 2023-07-18 15:51  しみずよしだ  阅读(69)  评论(0)    收藏  举报