hongming 描述是正确的
再加入到H集群后,M集群里对应的A workspace里的Namespace就全没了,从后台kubectl get ns也没有了;而且删除的比较快,比正常kubectl delete ns快很多,几乎是瞬间就没有了,比较奇怪

    Connor 可以在H 集群上看看这两个输出结果中的placement 包不包含 M集群

    kubectl get workspacetemplate <A workspace> -o yaml
    kubectl get federatedworkspace <A workspace> -o yaml

    Connor 我应该知道原因了, 因为你在H 集群创建A workspace 的时候并没有勾选 M 集群, 这时候A workspace的 placement 里是没有 M 集群的, 可能会导致 federated controller 将这个资源同步到 M 集群上导致 workspace 被删,应该是一个流程上的问题,我们尝试着复现一下。

    hongming 好的,以后我们就把label解绑一下企业空间再加入Host集群,看链接的帖子这样操作是比较安全的,可以回避这个bug

      Connor 我尝试着复现了一下, 不是我回复里猜测的那个问题,workspace 不会平白无故的被删, kubesphere 的代码中没有直接删除 workspace 和 namespace 的逻辑,只有通过kubesphere UI、通过kubectl delete、通过取消集群授权(取消时会有确认提示),这三方式进行删除。我验证了 kubefed-controller 的问题,即使在H 集群创建 A workspace 时没有勾选 M 集群 ,federated controller 也不会把M cluster 上已经存在的workspace给删掉,增加M集群或H集群授权时也不会影响到M 集群上的workspace。请确认一下是不是在集群授权的时候取消过M集群对A workspace的授权, 或者是直接操作过M集群删除过workspace

      集群上有启用审计模块吗, 可以查一下审计日志

      Connor 再确认一个问题, M集群之前独立使用的时候有开启多集群功能吗,cluster role 是什么

        hongming 有的,原来有一个Host集群,磁盘IO有问题,切换成新的Host集群了

        hongming M集群在加入之前,cluster role 是member;开始是加入到一个Host-old里,Host-old集群磁盘IO问题;我们要切换到新的Host集群,在切换到新的Host集群的时候出现的该问题

          Connor 非常抱歉,问题的根源定位到了,GitHub 上创建了相关的issue。被托管集群加入新的Host 集群这种操作流程是存在一些风险, 我们会增加一些风险提示和校验来逻辑来规避。