xuelangosK零S
某M集群单独开启企业空间使用了一阵子,已授权用户;
将该已经开启企业的M集群导入H集群后,进入H集群k’s控制台,看不到M集群创建过的企业空间,重新创建同名空间后,将已经授权的用户在H集群中重新创建,重新授权,发现只能授权一个企业空间;多个只显示第一个;
不知道将H集群,M集群中的企业空间全部删除,重新在H集群中授权会不会恢复?
某M集群单独开启企业空间使用了一阵子,已授权用户;
将该已经开启企业的M集群导入H集群后,进入H集群k’s控制台,看不到M集群创建过的企业空间,重新创建同名空间后,将已经授权的用户在H集群中重新创建,重新授权,发现只能授权一个企业空间;多个只显示第一个;
不知道将H集群,M集群中的企业空间全部删除,重新在H集群中授权会不会恢复?
xuelangos
将使用过的Member集群托管到Host集群可以这么操作,
在Host集群上创建同名的企业空间,注意创建企业空间时要勾选Member集群
在Host集群上通过kubectl查看资源状态,kubectl get federatedworkspace <workspace name> -o yaml,当status.clusters中看到member cluster,并且 status.conditions 中无异常时, 表示Member集群的企业空间已经纳管到了Host集群
在Member集群上执行命令清除冗余的数据, kubectl delete workspacetemplate <workspace name>, 注意执行次命令时一定要确保Member集群中企业空间已经托管到了Host集群
xuelangos 还可以直接删掉数据重建
1.在Member集群上执行命令,将需要保留的namespace与workspace进行解绑
kubectl label ns <namespace> kubesphere.io/workspace- && kubectl patch ns <namespace> -p '{"metadata":{"ownerReferences":[]}}' --type=merge
2.在Member集群上执行命令清理workspace
kubectl delete workspacetemplate <workspace>
3.在Host集群上创建好workspace(并关联Member集群)之后,在Member集群中执行下述命令将ns托管到workspace中
kuebctl label ns <namespace> kubesphere.io/workspace=<workspace>
分享我这边一个操作导致的问题:
我们有两个 K8s 集群,集群 A 和集群 B,两者都安装过 ks 并在没有开启多集群时候分配过企业空间。现在我想把 A 集群作为 Host,B 集群作为 Member。
修改完成后,我就看 ks 界面企业空间那里也没出现那个集群的标志,我就想是不是配置没生效,于是又去看了那个资源 kubectl get federatedworkspace <workspace name> -o yaml ,诶?我发现那个设置的集群咋就没了???之后就发现之前那个企业空间有的 NS 全都被删除了……
hjwsxl 我们也注意到了这里误操作可能带来的风险, 在不熟悉ks中联邦资源关联方式的情况下直接操作 federatedresource 存在隐患。建立了相关 issue 可以跟进
https://github.com/kubesphere/kubesphere/issues/3169
https://github.com/kubesphere/kubesphere/issues/3192
https://github.com/kubesphere/kubesphere/issues/3028
有下面一些需要注意的地方:
kubefed.io/managed: "true"
的资源。这也是集群角色转换时可能存在的问题,host 集群中联邦资源的 placement 会直接影响到 member 集群中带有 kubefed.io/managed: "true"
的资源我们会在文档中加上提示,在集群导入、资源创建时增加风险检查
hongming 建议尽快加入风险提示,我们昨天吃了大苦头 T.T