Connor 升级到3版本后,创建企业空间,再暴露给企业空间,之前操作没有问题; 这次手欠,添加了描述,导致导入企业空间后,企业空间里的生产项目全丢了,备份恢复也失败; 这个不知道是不是一个BUG,风险要命,请重视排查一下
Connor hongming 没有删除操作,就是创建了企业空间,然后添加了描述(之前操作的时候没有添加描述),目标集群里也有相同名字的企业空间。在目标集群设置集群可见性的时候,暴露了这个企业空间,结果就是该企业空间下的项目全部没有了
hongming Connor 不知道我理解的对不对, 你有两个H、M两个集群,H 作为host cluster使用,M集群在托管到H集群之前创建了 A workspace,将 M 托管到 H 之后又在 H 上创建了同名的 A workspace,通过 H 设置 M 集群可见性的时候勾选了 M 集群对 A workspace可见,然后你发现 A workspace 下 M 集群中的项目被删除了, 是我描述的这样吗? 确认一下在 M 集群 kubectl get ns 可以看到你之前的namespace 吗?
Connor hongming 描述是正确的 再加入到H集群后,M集群里对应的A workspace里的Namespace就全没了,从后台kubectl get ns也没有了;而且删除的比较快,比正常kubectl delete ns快很多,几乎是瞬间就没有了,比较奇怪
hongming Connor 可以在H 集群上看看这两个输出结果中的placement 包不包含 M集群 kubectl get workspacetemplate <A workspace> -o yaml kubectl get federatedworkspace <A workspace> -o yaml
hongming Connor 我应该知道原因了, 因为你在H 集群创建A workspace 的时候并没有勾选 M 集群, 这时候A workspace的 placement 里是没有 M 集群的, 可能会导致 federated controller 将这个资源同步到 M 集群上导致 workspace 被删,应该是一个流程上的问题,我们尝试着复现一下。
hongming 之前有个帖子有提到类似的问题,可以按照这个操作将M集群托管到H集群并迁移workspace, https://kubesphere.com.cn/forum/d/2637/8。我们尝试着复现一下,如果操作上有风险的话,我们会加上风险提示和使用引导。
hongming 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 hongming M集群在加入之前,cluster role 是member;开始是加入到一个Host-old里,Host-old集群磁盘IO问题;我们要切换到新的Host集群,在切换到新的Host集群的时候出现的该问题
hongming Connor 非常抱歉,问题的根源定位到了,GitHub 上创建了相关的issue。被托管集群加入新的Host 集群这种操作流程是存在一些风险, 我们会增加一些风险提示和校验来逻辑来规避。