我尝试kubevela+gitops 始终不成功,遇到这些问题,请问怎么解决?

"我尝试kubevela+gitops 始终不成功。 我先 enable velaux fluxcd. 参照https://kubevela.io/zh/docs/end-user/gitops/fluxcd/ 和 博客 https://kubevela.io/zh/blog/2021/10/10/kubevela-gitops/。
遇到的问题:
1、执行 apps.yaml 正常。 当我执行 vela delete my-app 后,my-app 会自动被重新部署。但是修改 my-app.ayml,例如将 cpu 从0.5 调整 1,并没有触发my-app被重新部署。查看对应的 GitRepository 资源,有 event :Normal NewArtifact 6m30s (x2 over 48m) source-controller stored artifact for commit 'cpu requests to 1'。但不知道为什么没有触发资源变更
2、ImageRepository 同样问题,

  Image:     docker.mirrors.sjtug.sjtu.edu.cn/b3log/siyuan
  Interval:  5m
Status:
  Canonical Image Name:  docker.mirrors.sjtug.sjtu.edu.cn/b3log/siyuan
  Conditions:
    Last Transition Time:  2023-11-17T12:05:56Z
    Message:               successful scan, found 174 tags
    Reason:                ReconciliationSucceeded
    Status:                True
    Type:                  Ready
  Last Scan Result:
    Scan Time:          2023-11-17T22:28:00Z
    Tag Count:          174
  Observed Generation:  1
Events:                 <none>

没有触发任何 event, 没有更新资源"

展开
收起
十一0204 2023-11-21 18:11:09 75 分享 版权
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    针对你的问题描述,我可以提供以下几点建议:

    1. 确保你的应用程序配置文件(如 my-app.yml)已经被正确的提交到了你的代码仓库中,并且被 Vela 流量控制器检测到。如果你已经进行了改动并提交了更改,但仍未触发部署,请检查以下几项:

      • 在你的代码仓库中查看是否有新的 commit 提交,并确认相应的资源已经被更新。

      • 确认你的应用程序配置文件已按照 Vela 所要求的格式正确编写,并且包含了正确的触发器(比如,当 CPU 配置发生变化时,应使用 triggers 部分来指定触发条件)。

      • 检查 Vela 控制台中的事件列表,以了解任何可能的错误或警告信息。

    2. 关于 ImageRepository 的问题,请确认你的镜像仓库地址正确,并且 Vela 流量控制器可以访问到该地址。此外,请确保你的镜像仓库包含了一个名为 siyuan 的镜像,并且该镜像包含了你希望扫描的所有标签。如果你已经在镜像仓库中创建了一个新的镜像,并且已经推送到仓库,但在 Vela 中仍未看到相应的变化,请等待一段时间让流量控制器完成轮询任务后再次刷新页面查看结果。请确保你已经按照 Vela 文档中的说明正确配置了 ImageRepository 资源。

    2023-11-29 16:15:25
    赞同 展开评论
  • 在KubeVela + FluxCD的GitOps实践中遇到的问题的确可能很棘手,我会尽力帮助你解决这些问题。

    针对你的问题,我建议以下步骤:

    1. 确认你的apps.yaml中的部署策略(例如deleteupdate)以及更新策略(例如RollingUpdateRecreate)。根据你的描述,当你执行vela delete my-app后,应用会自动重新部署,这表明你的部署策略可能设置为delete,而更新策略可能设置为Recreate。如果你要通过修改YAML文件来更新应用,你可能需要将更新策略设置为RollingUpdate,以便于逐步更新应用而不是完全重新创建。
    2. 确保你的Git仓库中包含正确的触发器(Trigger)配置。在FluxCD中,你需要配置一个触发器来监听Git仓库的更改并触发Kubernetes资源的更新。你需要确保触发器配置正确并且已经启动。
    3. 检查你的Git仓库中是否有任何未提交的更改。有时,未提交的更改可能会阻止触发器的执行。
    4. 确认你的Kubernetes集群和KubeVela控制器是否正常运行并且已经正确配置。你可以通过查看相关的日志和状态来确认这一点。
    5. 如果你使用的是ImageRepository资源,你需要确保ImageRepository资源的状态为“Ready”。如果不是,你需要检查你的ImageRepository资源是否已经正确配置并且已经拉取了最新的镜像。
    2023-11-29 14:13:33
    赞同 展开评论
问答地址:

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

还有其他疑问?
咨询AI助理