开发者社区 > 云原生 > 正文

KubeVela中用 adopt 接管的应用,用 webhook 触发发布,容器镜像不会更新什么原因

KubeVela中用 adopt 接管的应用,用 webhook 触发发布,容器镜像不会更新什么原因?

ed6e1e31216af332448e55b677dca20a.png

展开
收起
十一0204 2023-07-19 21:21:45 63 0
2 条回答
写回答
取消 提交回答
  • 在 KubeVela 中,如果您使用 adopt 命令接管已有的应用,并通过 webhook 触发发布,容器镜像不会更新的原因可能有以下几个:

    1. 更新策略:默认情况下,KubeVela 在触发发布时会使用 RollingUpdate 策略来进行更新。这意味着只有当 Pod 模板的标签或模板本身发生变化时,才会触发容器镜像的更新。如果只修改了应用配置,而没有更改 Pod 模板的相关内容,则容器镜像不会被更新。

    2. Webhook 触发:确保您的 Webhook 配置正确地触发了应用的发布流程,并且在触发时传递了正确的参数和数据。如果存在配置问题或触发条件不满足,可能导致发布流程未能正确执行,从而容器镜像没有被更新。

    3. 缓存和同步延迟:在某些情况下,Kubernetes 控制器可能存在缓存和同步延迟,导致镜像更新的变化不会立即生效。这可能是由于控制器的运行机制或集群的特定配置造成的。您可以等待一段时间,或者尝试强制重启相关的部署来验证是否更新了容器镜像。

    2023-07-28 11:57:36
    赞同 展开评论 打赏
  • 意中人就是我呀!

    webhook payload 里我看了下好像没有这种一层层声明的办法,所以目前可能是不支持这个能力。确实是比较普遍的 case,一个合适的解法是优化 webhook trigger 的逻辑,能够做到识别 objects 类型,去往底层常见的 Deployment、Statefulset 里更新 image。社区支持这个的时间不太可控,建议换个思路,不一定要用 velaux 的 webhook,只要在 CI 那一侧去更新(patch)这个 application CR,去更新这个 image 字段即可。分配一个小颗粒权限的 kubeconfig 即可,比如只能patch 这个namespace的 vela application。此回答整理至钉群“OAM/KubeVela 社区交流群”。

    2023-07-19 23:50:44
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关产品

  • 容器镜像服务
  • 相关电子书

    更多
    使用CNFS搭建弹性Web服务 立即下载
    阿里云文件存储 NAS 在容器场景的最佳实践 立即下载
    何种数据存储才能助力容器计算 立即下载