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

K8s上Apache Zeppelin解释器因UnknownHostException崩溃求助

解决Zeppelin解释器Pod无法解析Server Pod域名的问题

看起来你的Python解释器Pod无法解析Zeppelin Server的Pod域名,这是Zeppelin在K8s环境中常见的RPC通信问题——默认情况下Zeppelin Server会通知解释器连接自己的Pod FQDN,但Pod域名是动态且可能存在DNS解析不稳定的情况,更稳妥的方式是使用Service稳定域名来进行RPC通信。

问题分析

日志中的错误java.net.UnknownHostException: zeppelin-server-6d7f46d8d8-m9jlv.zeppelin.svc说明解释器Pod无法解析Zeppelin Server的Pod域名。而K8s的Service域名是固定且可靠的,我们可以让Zeppelin Server使用Service地址作为RPC通信的端点,让解释器连接这个稳定地址。

解决方案步骤

1. 修改Zeppelin配置,指定RPC通信地址为Service域名

编辑你的zeppelin-server-conf-map ConfigMap,添加ZEPPELIN_SERVER_RPC_ADDRESS环境变量,值设置为Zeppelin Server Service的FQDN:

apiVersion: v1
kind: ConfigMap
metadata:
  name: zeppelin-server-conf-map
  namespace: zeppelin
data:
  SERVICE_DOMAIN: https://zeppelin.karstecsa.com.ar/
  ZEPPELIN_K8S_SPARK_CONTAINER_IMAGE: spark:2.4.5
  ZEPPELIN_K8S_CONTAINER_IMAGE: apache/zeppelin:0.9.0-SNAPSHOT
  ZEPPELIN_HOME: /zeppelin
  ZEPPELIN_SERVER_RPC_PORTRANGE: 12320:12322
  # 新增配置:指定RPC通信地址为Service稳定域名
  ZEPPELIN_SERVER_RPC_ADDRESS: zeppelin-server.zeppelin.svc
  SPARK_MASTER: k8s://https://kubernetes.zeppelin.svc
  SPARK_HOME: /spark

2. 应用配置并重启Zeppelin Server

执行以下命令更新配置并重启Deployment:

kubectl apply -f zeppelin-server.yaml -n zeppelin
kubectl rollout restart deployment/zeppelin-server -n zeppelin

3. 验证DNS解析(可选)

如果问题仍然存在,可以先验证解释器Pod能否解析Service域名:

# 启动一个临时测试Pod
kubectl run -it --rm --image busybox:1.28 test-dns -n zeppelin
# 在测试Pod中ping Service域名
ping zeppelin-server.zeppelin.svc

如果能正常ping通,说明K8s DNS配置正常,上述RPC地址修改应该能解决问题。

额外检查点

  • 确认Zeppelin Server Service已正确暴露RPC端口:你的Service配置中已经包含rpc端口12320,与Deployment容器端口对应,这部分无需修改。
  • 确认Pod的DNS策略:Zeppelin Server和解释器Pod的dnsPolicy默认应为ClusterFirst,如果被修改过,需要确保恢复为默认值,保证Pod能正常使用K8s集群DNS。

内容的提问来源于stack exchange,提问作者Ignacio Norris Perret

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 23:27:48