You need to enable JavaScript to run this app. 如何在Kubernetes中配置PrestoDB内部通信及HTTPS认证
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kubernetes中配置PrestoDB内部通信及HTTPS认证

Kubernetes环境PrestoDB HTTPS及密码认证配置指南

一、证书需覆盖的域名说明

你当前使用K8s内部服务名作为发现地址,证书的SAN字段必须包含以下两类必选地址,避免内部通信校验失败:

  • Coordinator服务短域名:prestodb-coordinator-service
  • Coordinator服务完整FQDN:prestodb-coordinator-service.<部署命名空间>.svc.cluster.local
  • 可选:如果需要从集群外访问Presto,还需要添加对外暴露的Ingress域名、LoadBalancer/NodePort对应的节点IP/外部IP

二、完整配置步骤

1. 签发符合要求的证书

可以使用自签证书或者企业内部CA签发证书,确保证书SAN字段覆盖上述所有域名。如果使用JKS格式的密钥库,需要同步生成keystore和truststore文件;如果使用PEM格式证书,直接保留crt、key和根CA证书文件即可。

2. 凭证存入K8s资源

将证书、密钥、密码认证文件存入K8s的Secret或ConfigMap,避免敏感信息明文配置:

  • 存储TLS凭证命令示例:
    kubectl create secret generic presto-tls-secret --from-file=keystore.jks=./keystore.jks --from-file=truststore.jks=./truststore.jks --from-literal=keystore-pass=<你的密钥库密码> --from-literal=truststore-pass=<你的信任库密码> -n <部署命名空间>
  • 生成密码文件并存储:首先用htpasswd -Bc presto-passwd.db <自定义用户名>命令生成加密的密码文件,再执行kubectl create secret generic presto-auth-secret --from-file=presto-passwd.db=./presto-passwd.db -n <部署命名空间>
  • 将上述两个Secret挂载到所有Coordinator和Worker Pod的/etc/presto/secret路径下

3. 修改Presto核心配置

3.1 公共配置(Coordinator+Worker均需配置)

在config.properties中添加以下配置:

# 开启HTTPS及内部通信加密
http-server.https.enabled=true
http-server.https.port=8443
http-server.https.keystore.path=/etc/presto/secret/keystore.jks
http-server.https.keystore.key=${ENV:KEYSTORE_PASS}
internal-communication.https.required=true
internal-communication.https.truststore.path=/etc/presto/secret/truststore.jks
internal-communication.https.truststore.key=${ENV:TRUSTSTORE_PASS}
# 修改发现地址为HTTPS协议
discovery.uri=https://prestodb-coordinator-service:8443

在Pod环境变量中注入Secret中存储的密钥库密码,避免明文泄露。

如果你使用PEM格式的TLS证书,无需转换为JKS格式,直接替换为Presto支持的PEM证书路径配置项即可。

3.2 Coordinator额外配置

在Coordinator的配置目录下新增password-authenticator.properties文件:

password-authenticator.name=file
file.password-file=/etc/presto/secret/presto-passwd.db

4. 功能验证

Pod启动正常后,执行以下命令验证认证配置生效:
presto --server https://prestodb-coordinator-service:8443 --user <你设置的用户名> --password --truststore-path ./truststore.jks
输入密码后如果可以正常进入Presto交互终端,说明配置生效。

内容的提问来源于stack exchange,提问作者Rubens Sôto

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 17:21:01