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

咨询个OpenKruise问题,换成 Ignore 会被覆盖掉么?

咨询个OpenKruise问题,kruise-rollout 场景下手工把 mutation webhook 里的 failure policy 换成 Ignore 会被覆盖掉么?

展开
收起
真的很搞笑 2024-03-04 11:30:01 44 0
4 条回答
写回答
取消 提交回答
  • 在kruise-rollout场景下,如果您手动将mutation webhook里的failure policy改为Ignore,这通常意味着忽略webhook的失败,并且允许变更继续进行

    OpenKruise 中的 Kruise Rollout 是一个渐进式交付框架,支持金丝雀发布、蓝绿发布、A/B Testing 等多种发布方式,并且能够基于Prometheus Metrics指标自动化分批与暂停。Kruise Rollout 使用webhook来拦截和处理发布请求,通过修改workload strategy来实现workload控制器的工作暂停和动态调整参数等操作。

    在Kubernetes中,Mutation Webhook Configuration通常用于Admission Control,它允许在对象创建或更新时对对象进行修改。Failure policy决定了当webhook未能正常响应时该如何处理请求,通常有以下几种选项:

    • Fail:如果webhook失败,则整个请求失败,不允许对象的创建或更新。
    • Ignore:如果webhook失败,则忽略该失败,允许对象的创建或更新继续进行。

    因此,如果您将failure policy设置为Ignore,即使webhook失败了,也不会阻止发布过程。这可能有助于避免因webhook问题导致的发布中断,但同时也可能会忽略一些重要的错误或警告。在实际使用中,应根据具体情况和需求来决定是否使用Ignore策略,并确保有足够的监控和日志记录机制来跟踪发布过程中的任何问题。

    2024-03-04 17:29:23
    赞同 1 展开评论 打赏
  • 在Kruise Rollout场景下,如果您手工将mutation webhook中的failure policy设置为Ignore,当Kruise控制器重新创建或更新Webhook配置时,该设置可能会被Kruise控制器的默认策略覆盖,具体情况需要查阅Kruise Rollout的具体实现和配置更新逻辑。

    2024-03-04 16:13:45
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在 OpenKruise 中,如果您手动将 mutation webhook 中的 failure policy 更改为 Ignore,它可能会被覆盖。这是因为 OpenKruise 的控制器会定期检查资源的状态,并根据配置的规则执行相应的操作。如果您手动更改了 failure policy,但 OpenKruise 的控制器检测到状态不符合预期,它可能会尝试将其还原为默认值或先前的配置。

    为了避免这种情况,您可以使用 Kubernetes 的 annotation 来自定义 failure policy。例如,您可以在您的资源上添加一个注解,指定要使用的 failure policy。然后,您可以编写一个自定义的 admission webhook,根据这个注解来处理请求。这样,即使 OpenKruise 的控制器尝试更改 failure policy,它也会被您的自定义 webhook 忽略。

    以下是一个示例,展示了如何在 Deployment 资源上添加一个名为 kruise.io/failure-policy 的注解:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-deployment
      annotations:
        kruise.io/failure-policy: Ignore
    spec:
      ...
    

    然后,您需要编写一个自定义的 admission webhook,根据这个注解来处理请求。具体实现方式可能因您的环境和需求而异,您可以参考 Kubernetes 文档以了解如何编写和部署 admission webhook。

    2024-03-04 15:59:56
    赞同 展开评论 打赏
  • 会,这个建议不要调整,新版本只会对包含 rollout cr 对应的 deployment 才会 生效。。。默认,其他的 deployment 都不会过的。所以,没必要 ignore ,此回答整理自钉群“OpenKruise 社区交流群”

    2024-03-04 11:40:58
    赞同 展开评论 打赏

国内唯一 Forrester 公共云容器平台领导者象限。

相关电子书

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