Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何在aws kubernetes实例上部署dask kubernetes自适应集群_Amazon Web Services_Kubernetes_Kubernetes Helm_Dask Kubernetes - Fatal编程技术网

Amazon web services 如何在aws kubernetes实例上部署dask kubernetes自适应集群

Amazon web services 如何在aws kubernetes实例上部署dask kubernetes自适应集群,amazon-web-services,kubernetes,kubernetes-helm,dask-kubernetes,Amazon Web Services,Kubernetes,Kubernetes Helm,Dask Kubernetes,我正在尝试将自适应dask kubernetes群集部署到我的aws K8s实例(我想使用找到的kubeControl接口)。我不清楚在何处以及如何执行此代码,因此它在现有集群上处于活动状态。除此之外,我希望有一个入口规则,以便我拥有的另一个ec2实例可以连接到集群并在aws VPC内执行代码,以维护安全和网络性能 到目前为止,我已经成功地获得了一个运行dask和jupyterhub的功能性k8s集群。我使用的是参考docker图像找到的示例头盔图表。我可以看到这张图片甚至没有安装dask ku

我正在尝试将自适应dask kubernetes群集部署到我的aws K8s实例(我想使用找到的kubeControl接口)。我不清楚在何处以及如何执行此代码,因此它在现有集群上处于活动状态。除此之外,我希望有一个入口规则,以便我拥有的另一个ec2实例可以连接到集群并在aws VPC内执行代码,以维护安全和网络性能

到目前为止,我已经成功地获得了一个运行dask和jupyterhub的功能性k8s集群。我使用的是参考docker图像找到的示例头盔图表。我可以看到这张图片甚至没有安装dask kubernetes。话虽如此,我可以使用公开的AWS dns服务器从另一个ec2实例连接到此集群并执行自定义代码,但这不是kubernetes本机dask集群

我已经着手修改kubernetes的部署yaml,但我不清楚需要做哪些更改才能使其使用适当的kubernetes集群/调度程序。我确实知道我需要修改docker映像,我正在使用它来安装dask kubernetes,但这对我仍然没有帮助。下面是我正在使用的示例头盔部署图

---
# nameOverride: dask
# fullnameOverride: dask

scheduler:
  name: scheduler
  image:
    repository: "daskdev/dask"
    tag: 2.3.0
    pullPolicy: IfNotPresent
    # See https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
    pullSecrets:
    #  - name: regcred
  replicas: 1
  # serviceType: "ClusterIP"
  # serviceType: "NodePort"
  serviceType: "LoadBalancer"
  servicePort: 8786
  resources: {}
  #  limits:
  #    cpu: 1.8
  #    memory: 6G
  #  requests:
  #    cpu: 1.8
  #    memory: 6G
  tolerations: []
  nodeSelector: {}
  affinity: {}

webUI:
  name: webui
  servicePort: 80

worker:
  name: worker
  image:
    repository: "daskdev/dask"
    tag: 2.3.0
    pullPolicy: IfNotPresent
    # dask_worker: "dask-cuda-worker"
    dask_worker: "dask-worker"
    pullSecrets:
    #  - name: regcred
  replicas: 3
  aptPackages: >-
  default_resources:  # overwritten by resource limits if they exist
    cpu: 1
    memory: "4GiB"
  env:
  #  - name: EXTRA_CONDA_PACKAGES
  #    value: numba xarray -c conda-forge
  #  - name: EXTRA_PIP_PACKAGES
  #    value: s3fs dask-ml --upgrade
  resources: {}
  #  limits:
  #    cpu: 1
  #    memory: 3G
  #    nvidia.com/gpu: 1
  #  requests:
  #    cpu: 1
  #    memory: 3G
  #    nvidia.com/gpu: 1
  tolerations: []
  nodeSelector: {}
  affinity: {}

jupyter:
  name: jupyter
  enabled: true
  image:
    repository: "daskdev/dask-notebook"
    tag: 2.3.0
    pullPolicy: IfNotPresent
    pullSecrets:
    #  - name: regcred
  replicas: 1
  # serviceType: "ClusterIP"
  # serviceType: "NodePort"
  serviceType: "LoadBalancer"
  servicePort: 80
  # This hash corresponds to the password 'dask'
  password: 'sha1:aae8550c0a44:9507d45e087d5ee481a5ce9f4f16f37a0867318c'
  env:
  #  - name: EXTRA_CONDA_PACKAGES
  #    value: "numba xarray -c conda-forge"
  #  - name: EXTRA_PIP_PACKAGES
  #    value: "s3fs dask-ml --upgrade"
  resources: {}
  #  limits:
  #    cpu: 2
  #    memory: 6G
  #  requests:
  #    cpu: 2
  #    memory: 6G
  tolerations: []
  nodeSelector: {}
  affinity: {}

要在Kubernetes上运行Dask集群,建议使用三种方法。这些方法中的每一种都要求您拥有一个现有的Kubernetes集群和正确配置的凭据(
kubectl
在本地工作)

Dask舵图

您可以使用部署独立Dask群集

请注意,这不是一个自适应集群,但您可以通过
kubectl
修改部署的大小来扩展它

kubectl scale deployment dask-worker --replicas=10

Python
dask-kubernetes
API

您还可以使用
dask kubernetes
,这是一个Python库,用于动态创建临时集群

pip install dask-kubernetes
来自dask_kubernetes import KubeCluster
集群=KubeCluster()
cluster.scale(10)#明确指定节点数
cluster.adapt(最小值=1,最大值=100)#或根据当前工作负载动态扩展
这将从头创建一个Dask集群,并在
集群
对象被垃圾收集时(最有可能在退出时)将其拆除

Dask网关

Dask网关为管理Dask群集提供了一个安全的多租户服务器

要开始使用Kubernetes,您需要使用网关代理令牌创建一个Helm配置文件(
config.yaml

gateway:
  proxyToken: "<RANDOM TOKEN>"

gateway:
  proxyToken: "<RANDOM TOKEN>"
helm repo add dask-gateway https://dask.org/dask-gateway-helm-repo/
helm repo update
helm install --values config.yaml my-release dask-gateway/dask-gateway