Kubernetes
目录
Kubernetes¶
Kubernetes 是一个流行的系统,用于在集群上部署分布式应用,尤其是在云环境中。您可以通过以下方式使用 Kubernetes 启动 Dask 集群
Dask Kubernetes Operator¶
Dask Kubernetes Operator 是一组自定义资源定义 (CRD) 和一个控制器,它允许您将 Dask 集群作为原生 Kubernetes 资源来创建和管理。
可以通过 Kubernetes API 使用 kubectl
或 Python API 使用 KubeCluster
来创建集群。
helm install --repo https://helm.dask.org --create-namespace -n dask-operator --generate-name dask-kubernetes-operator
# Create a cluster with kubectl
kubectl apply -f - <<EOF
apiVersion: kubernetes.dask.org/v1
kind: DaskCluster
metadata:
name: my-dask-cluster
spec:
...
EOF
# Create a cluster in Python
from dask_kubernetes.operator import KubeCluster
cluster = KubeCluster(name="my-dask-cluster", image='ghcr.io/dask/dask:latest')
cluster.scale(10)
如果您希望执行以下操作,这是一个不错的选择
获得原生的 Kubernetes 体验。
通过 Kubernetes API 和诸如
kubectl
之类的工具管理 Dask 集群。将 Dask 与在 Kubernetes 上运行的其他工具和工作负载集成。
将 Dask 集群作为更大 Kubernetes 应用程序的一部分进行组合。
欲了解更多信息,请访问 kubernetes.dask.org。
Dask Gateway¶
Dask Gateway 提供了一个安全的多租户服务器,用于管理 Dask 集群。它允许用户在一个共享的、集中管理的集群环境中启动和使用 Dask 集群,而无需用户直接访问底层集群后端(例如 Kubernetes、Hadoop/YARN、HPC 作业队列等)。
helm install --repo https://helm.dask.org --create-namespace -n dask-gateway --generate-name dask-gateway
from dask_gateway import Gateway
gateway = Gateway("<gateway service address>")
cluster = gateway.new_cluster()
如果您希望执行以下操作,这是一个不错的选择
抽象用户,使其无需直接接触 Kubernetes。
在 Kubernetes/Hadoop/HPC 环境中提供一致的 Dask 用户体验。
欲了解更多信息,请访问 gateway.dask.org。
DaskHub¶
您还可以使用 DaskHub helm chart 将 Dask Gateway 与 JupyterHub 一起部署。
helm install --repo https://helm.dask.org --create-namespace -n daskhub --generate-name daskhub
欲了解更多信息,请访问 artifacthub.io 上的 DaskHub 页面。
单集群 Helm Chart¶
您可以使用 Helm 轻松地在 Kubernetes 上部署单个 Dask 集群和(可选的)Jupyter
helm install --repo https://helm.dask.org my-dask dask
如果您希望执行以下操作,这是一个不错的选择
首次在基于云的系统(如 Amazon、Google 或 Microsoft Azure)上试用 Dask,前提是您已拥有 Kubernetes 集群。如果您尚未部署 Kubernetes,请参阅我们的云部署文档。
您还可以使用 dask-kubernetes 中的 HelmCluster
集群管理器,在您的 Python 会话中管理您的 Helm Dask 集群。
from dask_kubernetes import HelmCluster
cluster = HelmCluster(release_name="myrelease")
cluster.scale(10)
欲了解更多信息,请访问 artifacthub.io 上的 Dask 页面。
延伸阅读¶
您可能还想查看关于使用Docker 容器部署 Dask 的文档,以帮助您管理 Kubernetes 上的软件环境。