EKS集群Loki-write-0 Pod S3块刷新报错排查求助
问题排查与解决方案
报错原因分析
从报错里的请求URL https://chunks./self-monitoring/... 能直接看出,Loki生成的S3请求域名不完整——只有chunks.前缀,缺少AWS S3服务的完整域名后缀(比如af-south-1.amazonaws.com)。这说明Loki的S3存储后端配置存在参数缺失或错误,导致无法构造合法的S3 endpoint地址。
具体解决方案
1. 检查并修正Loki的S3存储配置
重点核对以下核心配置项:
endpoint:必须指定完整的AWS S3区域endpoint,南非(af-south-1)区域应设为s3.af-south-1.amazonaws.com;如果是S3兼容存储则对应填写服务商提供的完整endpoint。bucketnames:确认桶名是af-south-1-dev-loki-chunks-bucket,无拼写错误。region:明确设置为af-south-1,即使依赖region自动推导endpoint,显式配置也能避免歧义。
2. 修正后的配置示例(脱敏版)
如果是Loki 2.x+的架构,chunks_storage_config部分修正后如下:
chunks_storage_config: aws: bucketnames: af-south-1-dev-loki-chunks-bucket region: af-south-1 endpoint: s3.af-south-1.amazonaws.com # 按需添加IAM认证相关配置(如role_arn,匹配你的EKS IRSA设置)
若使用旧版storage_configs格式:
storage_configs: - aws: s3: s3://af-south-1-dev-loki-chunks-bucket region: af-south-1 endpoint: s3.af-south-1.amazonaws.com
3. 验证配置并重启Pod
- 用修正后的配置更新Loki的StatefulSet:
kubectl apply -f <你的Loki配置文件路径> -n <命名空间> - 删除报错的Pod触发重启:
kubectl delete pod loki-write-0 -n <命名空间> - 查看日志确认修复:
kubectl logs loki-write-0 -n <命名空间>,检查是否还存在域名解析错误
额外排查点
- 若EKS用了IRSA(IAM角色绑定),确认Loki的ServiceAccount拥有目标S3桶的写入权限(至少包含
s3:PutObject、s3:ListBucket权限) - 在Pod内测试DNS解析:执行
nslookup s3.af-south-1.amazonaws.com,确认集群DNS能正常解析S3 endpoint域名
内容的提问来源于stack exchange,提问作者user15110035
相关产品推荐
相关产品推荐

