Kubernetes
内容
Kubernetes¶
Kubernetes 是一个在集群上部署分布式应用程序的流行系统,特别是在云环境中。你可以通过以下方式使用 Kubernetes 启动 Dask 集群:
Dask Kubernetes 操作符¶
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 图表¶
你可以使用 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 页面。
进一步阅读¶
您可能还想查看有关使用 Dask 与 Docker 容器 的文档,以帮助您在 Kubernetes 上管理软件环境。