求助:如何在Linux Ubuntu虚拟机的MicroK8S上部署Apache Druid并配置资源
在MicroK8S上部署Apache Druid并配置资源
1. 初始化MicroK8S环境
确保MicroK8S处于正常运行状态,启用部署Druid必需的插件:
microk8s status --wait-ready microk8s enable storage dns helm3 # 配置别名简化操作(可选) alias kubectl='microk8s kubectl' alias helm='microk8s helm3'
2. 获取有效的Druid Helm Chart
第三方维护的Helm仓库大多已废弃,直接使用Apache官方维护的Chart:
git clone https://github.com/apache/druid.git cd druid/helm/druid
3. 配置组件资源请求与限制
编辑values.yaml文件,针对Druid的各个核心组件设置合理的资源阈值(根据虚拟机实际资源调整):
# Coordinator组件 coordinator: resources: requests: cpu: "1" memory: "2Gi" limits: cpu: "2" memory: "4Gi" # Overlord组件 overlord: resources: requests: cpu: "1" memory: "2Gi" limits: cpu: "2" memory: "4Gi" # Broker组件(处理查询请求,需足够内存) broker: resources: requests: cpu: "2" memory: "4Gi" limits: cpu: "4" memory: "8Gi" # Historical组件(存储查询历史数据,资源需求较高) historical: resources: requests: cpu: "4" memory: "8Gi" limits: cpu: "8" memory: "16Gi" # MiddleManager组件(处理数据摄入) middleManager: resources: requests: cpu: "2" memory: "4Gi" limits: cpu: "4" memory: "8Gi" # Router组件(统一入口) router: resources: requests: cpu: "1" memory: "2Gi" limits: cpu: "2" memory: "4Gi"
4. 部署Druid到MicroK8S
创建独立命名空间隔离资源,然后通过Helm完成部署:
kubectl create namespace druid helm install druid . --namespace druid -f values.yaml
5. 验证部署与访问控制台
检查所有Pod状态,确认正常运行:
kubectl get pods -n druid
待所有Pod进入Running状态后,通过端口转发访问Druid控制台:
kubectl port-forward svc/druid-router 8888:8888 -n druid
在浏览器中访问http://localhost:8888即可进入控制台。
6. 常见问题排查
- Pod启动失败:通过
kubectl logs <pod-name> -n druid查看具体错误日志 - 存储异常:验证MicroK8S的storage插件是否正常提供默认存储类,执行
kubectl get storageclasses检查 - 资源不足:降低
values.yaml中的资源限制,或升级虚拟机硬件配置
内容的提问来源于stack exchange,提问作者Hawke404
相关产品推荐
相关产品推荐

