卸载 JupyterHub#

当您用完 hub 后,应该将其删除,这样您就不用再为它付费了。以下各节介绍了如何在各种云提供商上删除您的 JupyterHub 部署和相关的云资源。

拆除您的 JupyterHub 需要

  1. 删除您的 Kubernetes 命名空间,这将删除由 Kubernetes 在其中创建和管理的所有对象。

  2. 删除您从云提供商处请求的任何云资源。

  3. 进行最后检查,确保没有任何尚未被删除的残留资源(例如,某些云提供商中的存储卷)。

适用于所有云提供商#

删除 Helm release#

本节中的步骤必须首先对所有云提供商执行,然后再进行特定云提供商的设置。

  1. 首先,删除 Helm release。这将删除 Helm 为您的 JupyterHub 部署创建的所有资源。

    helm delete <YOUR-HELM-RELEASE-NAME>
    

    <你的-HELM-RELEASE-名称> 是最初设置 hub 时提供给 helm upgrade 的名称。如果您忘记了使用了什么名称,可以运行 helm list 来查找集群中所有的 release 名称。您还可以在此处看到将在下一步中使用的 namespace 值。

  2. 接下来,删除安装 hub 的 Kubernetes 命名空间。这将删除可能已创建的用于存储用户数据的任何磁盘,以及可能已配置的任何 IP 地址。

    kubectl delete namespace <YOUR-NAMESPACE>
    

Google Cloud Platform#

  1. 执行删除 Helm release中的步骤。这些与云提供商无关的步骤将删除 Helm release 和 Kubernetes 命名空间。必须在继续之前完成此操作。

  2. 删除 Kubernetes 集群。您可以列出您拥有的所有集群。

    gcloud container clusters list
    

    然后您可以删除您想要的那一个。

    gcloud container clusters delete <CLUSTER-NAME> --zone=<CLUSTER-ZONE>
    
  3. 再次检查以确保所有资源现已删除,因为任何未删除的资源都会让您花钱!您可以检查网页控制台(确保您在正确的项目和帐户中)以验证所有内容都已删除。

    至少,在汉堡菜单(左上角)下检查以下内容

    1. 计算 -> Compute Engine -> 磁盘

    2. 计算 -> Kubernetes Engine -> 集群

    3. 工具 -> Container Registry -> 镜像

    4. 网络 -> 网络服务 -> 负载均衡

    这些可能需要几分钟才能清理完毕,但在您删除集群后,它们不应包含任何与您的 JupyterHub 集群相关的内容。

Microsoft Azure AKS#

  1. 执行删除 Helm release中的步骤。这些与云提供商无关的步骤将删除 Helm release 和 Kubernetes 命名空间。必须在继续之前完成此操作。

  2. 删除您的资源组。您可以使用以下命令列出您的活动资源组

    az group list --output table
    

    然后您可以使用以下命令删除您想要的那个

    az group delete --name <YOUR-GROUP-NAME>
    

    请小心删除正确的资源组,因为这样做会不可逆转地删除该组内的所有资源!

  3. 再次检查以确保所有资源现已删除,因为任何未删除的资源都会让您花钱!您可以检查网页门户(检查“资源组”页面)以验证所有内容都已删除。

    这些可能需要几分钟才能清理完毕,但在您删除资源组后,它们不应包含任何与您的 JupyterHub 集群相关的内容。

Amazon Web Services (AWS)#

  1. 执行删除 Helm release中的步骤。这些与云提供商无关的步骤将删除 Helm release 和 Kubernetes 命名空间。必须在继续之前完成此操作。

  2. 在 CI 主机上

    kops delete cluster <CLUSTER-NAME> --yes
    
    # Leave CI host
    exit
    
    # Terminate CI host
    aws ec2 stop-instances --instance-ids <aws-instance id of CI host>
    aws ec2 terminate-instances --instance-ids <aws-instance id of CI host>
    

注意

  • <集群名称> 应该是 <某个名称>.k8s.local

  • 停止 CI 主机仍会产生磁盘存储和 IP 地址费用,但该主机可以在日后重新启动。

  • 有时 AWS 在第一次尝试时无法删除堆栈的某些部分。请务必再次检查您的堆栈是否确实已被删除,如果需要,请重新执行上述操作。