在kubernetes环境中使用BR备份到OSS时报错Alibaba RAM Provider Retrieve

【 TiDB 使用环境】测试
【 TiDB 版本】v7.5.0
【复现路径】使用官方的 pingcap.com/v1alpha1.Backup 创建出的backup job 参考 使用 BR 备份 TiDB 集群数据到兼容 S3 的存储 | PingCAP 文档中心
【遇到的问题:问题现象及影响】不管是哪一个region的oss,都会报错Alibaba RAM Provider Retrieve: Get “http://100.100.100.200/latest/meta-data/ram/security-credentials/”: dial tcp 100.100.100.200:80: i/o timeout
【附件:截图/日志/监控】

---
kind: Backup
apiVersion: pingcap.com/v1alpha1
metadata:
  name: backup
  namespace: tidb-backup
spec:
  backupType: full
  br:
    cluster: swartz-tidb
    clusterNamespace: dbs
    sendCredToTikv: true
  s3:
    provider: "alibaba"
    secretName: "tidb-s3-secret"
    region: "cn-shanghai"
    endpoint: "https://oss-cn-shanghai.aliyuncs.com"
    bucket: "52-ur04b61fp"
    prefix: "tidb-backup"

没有做远程存储访问授权?

我这个ak/sk是全权限的

先试下最新版本看是不是已知问题
.spec.toolImage: pingcap/br:v7.5.2

tidb的备份兼容的是s3 oss得加参数

需要添加什么参数呢

一样的,不知道这个http://100.100.100.200/latest/meta-data/ram/security-credentials/ 从哪来的

我帮你问问吧 你稍等

好的谢谢

设置 provider=‘alibaba’, 或者在 url 里添加force-path-style=false

provider我设置过s3、aws、还有alibaba,都是一样的报错

force-path-style=false这个参数是添加到endpoint中,类似 endpoint: "https://oss-cn-shanghai.aliyuncs.com?force-path-style=false" 这样吗

刚注意到,你竟然用的是外网地址,一般来说都是用内网地址https://oss-cn-shanghai-internal.aliyuncs.com 吧,不需要额外掏流量费的。
另外force-path-style=false是加到整体 URL 后面,一般是在文件路径上,不是在 endpoint 上。不过你已经设置provider了,所以肯定不是force-path-style的问题了,你先试下内网的 endpoint试下

这里代表已经找到正确的地址了,但是网络是不通的,应该还是跟你用的是个公网 endpoint 有关系

我这是自建机房测试环境的k8s,用internal肯定是不通的。。
其次 100.100.100.200 这个ip是运营商nat ip,我这里肯定连不到的

我发现 http://100.100.100.200/latest/meta-data/ram/security-credentials/ 这个链接是阿里云的内部查询元数据等信息的接口,但是这个接口是内部接口。从我的本地集群是无法访问这个链接的。

br备份的时候只能通过阿里云内部vpc去执行的吗,不能外部使用?

类似问题: dumpling 7.5.1在阿里云 OSS 下不支持通过环境传入 AK/SK - #13,来自 BornChanger

问题原因: br backup to aliyum OSS not support ak/sk as env · Issue #45551 · pingcap/tidb · GitHub ,等新版本修复,或者用下面的 TiUP BR + prefix AK/SK 绕过

简单测试了下:
v8.1.0 TiUP BR + ENV AK/SK 报错 Alibaba RAM Provider Retrieve
br: fix backup to aliyum OSS not support ak/sk as env (#54150) by ti-chi-bot · Pull Request #54994 · pingcap/tidb · GitHub 还没合并,估计等 v8.1.1
br: fix backup to aliyum OSS not support ak/sk as env (#54150) by ti-chi-bot · Pull Request #54579 · pingcap/tidb · GitHub 上周刚合并,估计会在 v7.5.3

v8.1.0 TiUP BR + prefix 里 AK/SK 可以成功,写法类似
–storage “s3://brtest20240730/tidb?access-key=…&secret-access-key=…”

v8.1.0 BR + v1.6.0 TiDB-Operator 报错 Alibaba RAM Provider Retrieve ,原因同上,secret 走的是 ENV 逻辑

v8.1.0 BR + v1.6.0 TiDB-Operator + prefix 里 AK/SK 报错 Get backup metadata for backup files in s3://… failed
报错出处 tidb-operator/cmd/backup-manager/app/backup/manager.go at v1.6.0 · pingcap/tidb-operator · GitHub , tidb-backup-manager 没有处理这类情况
相关 issue: How to use Backup CR to backup tidb to aliyun OSS? · Issue #5611 · pingcap/tidb-operator · GitHub 暂时没有优化计划

请问tidb的相关组件如何在本地编译运行测试,我在community中未找到相关描述呢。

在m1mac环境下直接运行 go build github.com/pingcap/tidb/br/cmd/br 时,报错 cpuUsage.Get undefined (type Cpu has no field or method Get) 相关组件是不支持arm环境吗

git clone 下来
make build_br

好的谢谢