删除用户集群

如需删除用户集群,您必须拥有用户集群管理员角色(user-cluster-admin 角色)。

如需删除用户集群,请完成以下步骤:

控制台

  1. 在导航菜单中,选择集群

  2. 在集群列表中,点击要删除的集群。

  3. 点击删除 删除集群

  4. 当系统提示您确认时,输入给定的确认短语,然后点击删除以删除集群。

kubectl

  1. 暂停用户集群的 GDCH Cluster 自定义资源的协调:

    kubectl annotate clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
        cluster.gdc.goog/paused=true --kubeconfig=ADMIN_CLUSTER_KUBECONFIG
    
  2. 触发用户集群的 GDCH Cluster 自定义资源的删除:

    kubectl delete clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
        --kubeconfig=ADMIN_CLUSTER_KUBECONFIG --wait=false
    
  3. 开始删除用户集群中的所有 NodePoolClaim 自定义资源:

    kubectl delete --all nodepoolclaims -n NAMESPACE \
        --kubeconfig=ADMIN_CLUSTER_KUBECONFIG --wait=false
    

    此命令会开始在后台删除用户集群中的所有节点池声明。

  4. 删除用户集群的 Cluster 自定义资源:

    kubectl delete clusters USER_CLUSTER_NAME \
        -n NAMESPACE --kubeconfig=ADMIN_CLUSTER_KUBECONFIG
    

    此命令可能需要几分钟时间,具体取决于要删除的用户集群中的节点池数量。

  5. 删除命名空间自定义资源:

    kubectl --kubeconfig=ADMIN_CLUSTER_KUBECONFIG delete namespace NAMESPACE
    
  6. 删除 istio-system 命名空间中的 Istio Secret:

    kubectl delete secrets istio-remote-secret-USER_CLUSTER_NAME -n istio-system \
        --kubeconfig=ADMIN_CLUSTER_KUBECONFIG
    

    在某些情况下,您的 Istio Secret 可能具有不同的名称。如需列出您的 Istio Secret 并确认其名称,请运行以下命令:

    kubectl get secrets -n istio-system \
        --kubeconfig=ADMIN_CLUSTER_KUBECONFIG
    
  7. 移除与目标用户集群同名但位于不同命名空间中的地址池声明:

    for j in $(kubectl get addresspoolclaims -A -o custom-columns=:.metadata.namespace --kubeconfig=ADMIN_CLUSTER_KUBECONFIG);
    do
    kubectl delete addresspoolclaims USER_CLUSTER_NAME -n $j --kubeconfig=ADMIN_CLUSTER_KUBECONFIG;
    done
    

    执行此命令后,您可能会看到如下错误:

    Error from server (NotFound): addresspoolclaims.system.private.gdc.goog "USER_CLUSTER_NAME" not found
    

    忽略这些错误。该命令会尝试在所有命名空间中查找具有指定集群名称的所有地址池声明。部分命名空间不包含具有相应名称的地址池声明,从而导致错误。

  8. 验证您是否已删除用户集群的命名空间:

    kubectl get namespaces NAMESPACE \
        --kubeconfig=ADMIN_CLUSTER_KUBECONFIG
    

    如果命名空间被删除,输出会显示一条错误,表明找不到该命名空间。例如:

    Error from server (NotFound): namespaces NAMESPACE not found
    
  9. 取消暂停用户集群的 GDCH Cluster 自定义资源的协调:

    kubectl annotate clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
        cluster.gdc.goog/paused- --kubeconfig=ADMIN_CLUSTER_KUBECONFIG
    

API

  • 如需删除用户集群,请从 GDC 实例中移除 Cluster 自定义资源:

    kubectl delete clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    替换以下内容:

    • USER_CLUSTER_NAME:要删除的用户集群的名称。
    • ADMIN_CLUSTER_KUBECONFIG:管理员集群的 kubeconfig 文件路径。