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

OpenKruise中创建了对应的CR, 有某几个namespace 需要同步的,如何触发同步?

ResourceDistribution 这个CRD,创建了对应的CR, 有某几个namespace 存在需要同步的, 在CR 中会显示这几个namespace 同步失败, 然后我删除了 这几个namespace 存在的资源, 发现并没有在进行同步, 这个如何在触发同步?kruise是1.5版本。ed4f80861f8bec4438b77a03904a054a.png

展开
收起
林间雨 2023-11-14 18:08:19 43 0
2 条回答
写回答
取消 提交回答
  • 在OpenKruise中,ResourceDistribution是用来同步资源的控制器。如果你发现某个Namespace的资源同步失败,你可以通过以下几种方式来触发同步:

    1. 手动触发同步:你可以在ResourceDistribution的CR中,通过设置spec.syncStatus.lastSyncTime字段来手动触发同步。例如:
    apiVersion: kruise.io/v1alpha1
    kind: ResourceDistribution
    metadata:
      name: resource-distribution
    spec:
      resourceType: Pod
      namespaceSelector:
        matchNames:
          - namespace1
          - namespace2
      syncStatus:
        lastSyncTime: "2022-06-01T12:00:00Z"
    

    在这个例子中,lastSyncTime字段的值表示最后一次同步的时间。当你更新了这个字段的值后,ResourceDistribution会自动触发同步。

    1. 自动触发同步:你也可以在ResourceDistribution的CR中,通过设置spec.syncStatus.autoSync字段来开启自动同步。例如:
    apiVersion: kruise.io/v1alpha1
    kind: ResourceDistribution
    metadata:
      name: resource-distribution
    spec:
      resourceType: Pod
      namespaceSelector:
        matchNames:
          - namespace1
          - namespace2
      syncStatus:
        autoSync: true
    

    在这个例子中,autoSync字段的值为true,表示ResourceDistribution会自动触发同步。你需要定期检查status.syncStatus.syncing字段的值,以确保同步正在正常运行。

    请注意,以上两种方法都需要你直接修改ResourceDistribution的CR。如果你不希望这样做,你可以考虑使用Kruise-tools工具来触发同步。例如:

    kruise-tools sync resource-distribution
    

    这个命令会触发ResourceDistribution的同步。

    2023-11-30 12:00:58
    赞同 展开评论 打赏
  • 确实有这个问题,你要不先随便加个 ns 的同步,或者给同步的 cr 加个 annotation 或者 label 触发一下,目前只 watch 了 owner 为 RD 的 cm&secret。此回答整理自钉群“OpenKruise 社区交流群”

    2023-11-14 19:57:37
    赞同 展开评论 打赏

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

相关电子书

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