You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Kubernetes部署Dask集群时如何确定Scheduler的动态IP地址

解决方案

问题根源:你当前未为Dask Scheduler Pod创建Kubernetes Service,Kubernetes不会自动为Pod生成稳定的域名解析条目,你Worker配置中使用的scheduler:8786地址没有对应的解析记录,因此连接超时。

步骤1:为Scheduler创建Service

新建scheduler-svc.yaml文件,内容如下:

apiVersion: v1
kind: Service
metadata:
  name: scheduler # 名称和Worker中配置的SCHEDULER_ADDRESS一致,保证解析正常
  namespace: default
spec:
  type: ClusterIP
  selector:
    app: cont-python # 匹配Scheduler Pod的标签
  ports:
    - name: scheduler
      port: 8786
      targetPort: 8786
    - name: dashboard
      port: 8787
      targetPort: 8787

执行kubectl apply -f scheduler-svc.yaml完成部署。

步骤2:优化Worker配置(可选,建议配置)

修改worker.yaml中的args字段,直接使用已定义的环境变量拼接地址,避免硬编码:

args: ["$(SCHEDULER_ADDRESS):$(SCHEDULER_PORT)"]

修改后重新apply Worker Deployment即可。

验证方法

  • 执行kubectl get svc scheduler确认Service正常创建,且CLUSTER-IP已分配
  • 进入任意一个Worker Pod执行nc -zv scheduler 8786,返回succeeded表示网络连通
  • 查看Worker Pod日志,无连接超时报错即可确认配置生效

可选优化

  • 可以将Scheduler的Deployment改为StatefulSet,获得更稳定的集群身份标识
  • 如果需要外部访问Dask Dashboard,可以将Service类型改为NodePort或LoadBalancer,或配置Ingress转发8787端口
  • 为Scheduler和Worker添加livenessProbe和readinessProbe,自动剔除异常实例

内容的提问来源于stack exchange,提问作者ps0604

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 13:54:03