背景
当前有两种方式将用户的k8s集群接入到CCSE ONE管控实例中:
1、通过直接关联同租户下CCSE产品中已有的集群。
2、在CCSE ONE控制台通过接入集群页面创建接入集群,创建出来的接入集群为Waiting状态,用户在该接入集群的接入页面中获取并复制接入命令,在用户已有的k8s集群中执行接入命令,等待命令执行完成打印以下信息时,表示该集群已成功接入。
相关操作
通过方式2接入的集群,CCSE ONE不拥有该接入集群的kubeconfig信息,因此在删除该接入集群时,需要用户手动清理接入过程中生成的相关资源。
1、删除接入集群前,请先确保部署在该接入集群上的业务应用均已删除。
2、在CCSE ONE接入集群列表页面中删除该接入集群。
3、在CCSE ONE管控实例的连接管控实例页面,复制该接入集群所属的管控实例kubeconfig连接信息,保存为hub.kubeconfig,使用管控实例kubeconfig访问管控实例kube-apiserver。
kubectl get managedCluster --kubeconfig hub.kubeconfig
4、待删除的资源有:managedCluster、managedClusterAddon、manifestwork、namespace。
删除与接入集群相同名称的managedCluster:
kubectl delete managedCluster XXX --kubeconfig hub.kubeconfig
删除与接入集群名称同名的命名空间下的managedClusterAddon:
kubectl delete managedClusterAddon -n XXX cluster-gateway cluster-proxy managed-serviceaccount --kubeconfig hub.kubeconfig
删除与接入集群名称同名的命名空间下的manifestwork:
kubectl get manifestwork -n XXX --kubeconfig hub.kubeconfig | awk '{print $1}' | xargs kubectl delete manifestwork -n XXX --kubeconfig hub.kubeconfig
如果命令长时间卡住无返回,可Ctrl+C取消,通过kubectl edit编辑manifest列表,移除manifestwork的finalizer:
kubectl edit manifestwork -n XXX --kubeconfig hub.kubeconfig
# 将manifestwork.metadata.finalizer下的- cluster.open-cluster-management.io/manifest-work-cleanup删除
删除前:
删除后:
删除与接入集群名称同名的命名空间:
kubectl delete namespace XXX
删除argocd命名空间下与接入集群同名的secret:
kubectl delete secret -n argocd XXX
5、用户登陆接入集群对应的k8s集群,清理以下资源:appliedManifestwork。
查看appliedManifestwork,一般情况下,在管控实例中删除managedClusterAddon后会自动删除appliedManifestwork,所以此处列表一般为空:
kubectl get appliedManifestwork -n
删除ocm组件:
clusteradm clean --cluster-name XXX