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 与 JupyterHub 一起部署 Dask Gateway。
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 上管理软件环境。