Kubernetes环境下Apache Superset与Dremio连接异常问题
解决方案
核心问题定位
错误提示SSL_ERROR_SSL: error:0A00010B:SSL routines::wrong version number说明Superset UI发起的连接尝试用SSL握手,但Dremio的Flight端口(32010)未启用SSL,或者双方SSL版本不匹配。而你在Pod内用Python脚本连接成功,说明脚本里的连接参数未强制SSL,与UI的默认行为不一致。
解决步骤
1. 修改连接字符串,明确禁用SSL
在Superset UI的Dremio连接字符串末尾添加?use_ssl=false参数,强制关闭SSL验证:
dremio+flight://dremioUser:dremioPwd@<dremio-service>.<namespace>.svc.cluster.local:32010/dremio?use_ssl=false
这是最直接的修复方式,和你脚本里的连接行为对齐。
2. 确认Dremio Flight端口的SSL配置
检查Dremio Helm Chart的values配置,确认Flight服务的SSL状态:
- 如果
flight.ssl.enabled设为false,则使用32010端口(无SSL),对应上述连接字符串; - 如果
flight.ssl.enabled设为true,则应改用32011端口,并在连接字符串中添加?use_ssl=true,同时可能需要配置CA证书路径(若使用自签名证书):dremio+flight://dremioUser:dremioPwd@<dremio-service>.<namespace>.svc.cluster.local:32011/dremio?use_ssl=true&ca_certs=/path/to/dremio-ca.crt
3. 排查Superset全局配置的强制SSL参数
检查Superset Helm Chart的values.yaml,确认没有全局强制数据库连接使用SSL的配置:
- 查看
superset.configOverrides下的SQLALCHEMY_ENGINE_OPTIONS或DATABASES配置,确保没有对Dremio引擎强制启用SSL; - 若存在类似
connect_args: {use_ssl: true}的全局配置,需针对Dremio单独覆盖。
4. 验证Superset UI的连接参数传递
如果上述步骤无效,可在Superset Pod内开启调试日志,查看UI发起连接时实际使用的参数:
- 进入Superset Pod:
kubectl exec -it <superset-pod-name> -n <superset-namespace> -- /bin/bash - 修改Superset日志级别为DEBUG,重启Pod后查看连接请求的详细参数,确认SSL参数是否正确传递。
内容的提问来源于stack exchange,提问作者ilmar
相关产品推荐
相关产品推荐

