Alluxio on EKS是否支持Deployment部署Worker指定副本数
回答
Alluxio 运行在 Kubernetes(含EKS发行版)上时,Worker 并非仅支持 DaemonSet 部署模式,完全可以使用 Deployment 类型部署 Worker 并自定义副本数量,匹配你限制Worker占用资源的诉求。
两种部署模式的差异说明
官方默认提供DaemonSet部署模板的核心原因是适配大数据/AI场景下的最高性能要求:
- DaemonSet模式下Worker会分布在所有计算节点上,计算应用可以通过本地短路读写直接访问同节点Worker的缓存,没有跨节点网络开销,缓存访问性能最优
- 但DaemonSet模式确实会在所有符合调度规则的节点上启动Worker,无法灵活控制全局副本总数,容易出现你遇到的全节点资源被Worker占用的问题
Deployment模式部署Worker的配置要点
使用Deployment部署Worker时,只需要注意以下配置项即可正常运行:
- 缓存存储配置:Worker的分层缓存(内存、SSD/HDD磁盘层)必须绑定持久化卷(PV)挂载,不能使用Pod本地临时存储,避免Pod重建、漂移时缓存数据全量丢失。如果使用节点本地盘做缓存,需要搭配节点亲和性规则,将Worker固定调度到挂载了对应缓存盘的EKS节点上
- 性能相关配置:如果可以接受跨节点网络访问缓存的性能损耗,可以直接关闭短路读写相关配置,不需要配置hostPath、hostNetwork、特权容器等DaemonSet模式下的常用参数,部署权限要求更低。如果仍需要保留短路读写能力,需要给Worker配置对应Domain Socket的hostPath挂载,同时给计算负载配置节点亲和性,将计算Pod调度到运行了Worker的节点上
- 副本数控制:直接修改Deployment的
spec.replicas字段即可自定义Worker副本总数,搭配节点选择器、污点容忍规则,可以将Worker仅调度到指定的一批节点上运行,完全避免Worker占用全集群节点资源 - 服务发现:不需要额外调整Alluxio Master的配置,Worker启动后只要和Master网络连通,就会自动向Master注册加入集群,和DaemonSet模式下的注册逻辑完全一致
额外注意事项
Deployment模式下Worker数量固定,当计算Pod调度到没有运行Worker的节点时,访问缓存需要走节点间网络,相比本地短路读会有一定性能损耗,通常损耗在15%~35%区间,具体数值和集群网络带宽、缓存数据大小相关。如果你的核心诉求是控制Alluxio的资源占用,对缓存访问性能没有极致要求,Deployment是官方完全支持的部署方案。
内容的提问来源于stack exchange,提问作者Rajashekhar Meesala
相关产品推荐
相关产品推荐

