OpenShift集群中Grafana Loki组件间TLS加密配置问题求助
OpenShift 上 Loki Ingester TLS 配置故障排查与修复
核心排查与修复步骤
1. 证书有效性与信任链校验
- 确认 ingester 使用的 OpenShift 自签名证书包含完整的 SAN(Subject Alternative Name):必须覆盖 ingester 的 Service DNS 名(如
loki-ingester.loki.svc.cluster.local)、Pod IP、headless Service 域名,否则上下游组件会因域名不匹配拒绝建立 TLS 连接。 - 同步上下游组件的信任链:将 OpenShift 自签名 CA 注入到 Promtail、Grafana、distributor 的信任存储中。例如在 Promtail 的 Deployment 中挂载
configmap/openshift-service-ca.crt到容器的/etc/pki/ca-trust/extracted/pem/目录,并执行update-ca-trust命令;Grafana 可临时勾选数据源配置的Skip TLS Verify做测试,正式环境需导入 CA 证书。
2. Ingester TLS 配置参数完整性
- 确保 ingester 的 Loki 配置同时覆盖 HTTP 和 gRPC 端口的 TLS 设置,两者缺一不可:
server: http_listen_port: 3100 grpc_listen_port: 9095 http_tls_config: cert_file: /etc/tls/tls.crt key_file: /etc/tls/tls.key client_auth: "NoClientCert" # 需双向认证时改为 RequireAndVerifyClientCert grpc_tls_config: cert_file: /etc/tls/tls.crt key_file: /etc/tls/tls.key - 检查证书挂载权限:确认 ingester Pod 挂载的 TLS Secret 路径正确,证书文件权限为
644,容器运行用户拥有读取权限。
3. Service 与网络策略校验
- 确认 ingester Service 的 targetPort 与配置的 TLS 端口(3100/9095)完全匹配,端口协议设置为
TCP。 - 检查 NetworkPolicy:确保允许 Promtail(跨 namespace 场景)、Grafana、distributor 访问 ingester 的 TLS 端口,避免网络策略拦截连接。
4. 日志与调试验证
- 查看 ingester Pod 日志,搜索
TLS/connection关键词,定位如x509: certificate signed by unknown authority或tls: bad certificate这类具体错误。 - 在 Promtail Pod 中执行测试命令:
curl -v https://loki-ingester.loki.svc.cluster.local:3100/ready,观察 SSL 握手过程判断证书信任问题。 - 在 Grafana Pod 中验证 API 连通性:
curl -v --cacert /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem https://loki-ingester.loki.svc.cluster.local:3100/loki/api/v1/labels,确认 CA 信任生效。
典型配置示例(OpenShift 环境)
Ingester Deployment 证书挂载片段
volumes: - name: tls-secret secret: secretName: loki-ingester-tls containers: - name: ingester volumeMounts: - name: tls-secret mountPath: /etc/tls readOnly: true
Promtail 信任 OpenShift CA 配置片段
volumes: - name: openshift-ca configMap: name: openshift-service-ca.crt containers: - name: promtail volumeMounts: - name: openshift-ca mountPath: /etc/pki/ca-trust/extracted/pem/ readOnly: true command: - /bin/sh - -c - update-ca-trust && /usr/bin/promtail -config.file=/etc/promtail/config.yaml
内容的提问来源于stack exchange,提问作者Dhanesh
相关产品推荐
相关产品推荐

