0

我已经用 Docker 运行了最新版本的 minio,并且可以通过浏览器正常访问它。然后我安装了 MC 客户端并用 MC 测试了 Minio,一切正常。但是当我使用 helm 添加 minio repo 时。我收到 403 错误。

[root@k8smaster01 helm-charts]# mc config host list
gcs    
  URL       : https://storage.googleapis.com
  AccessKey : YOUR-ACCESS-KEY-HERE
  SecretKey : YOUR-SECRET-KEY-HERE
  API       : S3v2
  Lookup    : dns

local  
  URL       : http://localhost:9000
  AccessKey : 
  SecretKey : 
  API       : 
  Lookup    : auto

myminio
  URL       : http://172.16.5.182:9000
  AccessKey : minioadmin
  SecretKey : minioadmin
  API       : s3v4
  Lookup    : auto

play   
  URL       : https://play.min.io
  AccessKey : Q3AM3UQ867SPQQA43P2F
  SecretKey : zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG
  API       : S3v4
  Lookup    : auto

s3     
  URL       : https://s3.amazonaws.com
  AccessKey : YOUR-ACCESS-KEY-HERE
  SecretKey : YOUR-SECRET-KEY-HERE
  API       : S3v4
  Lookup    : dns

[root@k8smaster01 helm-charts]# mc ls myminio
[2020-06-16 18:10:01 CST]      0B minio-helm-repo/
[root@k8smaster01 helm-charts]# mc ls myminio/minio-helm-repo/
\[2020-06-16 18:17:20 CST]     76B index.yaml
[root@k8smaster01 helm-charts]# helm repo add minio-test-repo http://172.16.5.182:9000/minio-helm-repo
Error: looks like "http://172.16.5.182:9000/minio-helm-repo" is not a valid chart repository or cannot be reached: failed to fetch http://172.16.5.182:9000/minio-helm-repo/index.yaml : 403 Forbidden
[root@k8smaster01 helm-charts]#
[root@k8smaster01 helm-charts]# helm repo add minio-test-repo http://172.16.5.182:9000/minio-helm-repo --username minioadmin --password minioadmin
Error: looks like "http://172.16.5.182:9000/minio-helm-repo" is not a valid chart repository or cannot be reached: failed to fetch http://172.16.5.182:9000/minio-helm-repo/index.yaml : 400 Bad Request
[root@k8smaster01 helm-charts]#

我的 minio 版本是最新的(RELEASE.2020-06-14T18-32-17Z) 我的 mc 版本是 RELEASE.2020-05-28T23-43-36Z 我的 helm 版本是 version.BuildInfoVersion:"v3.2.3"

我怎样才能成功地将 repo 添加到 helm 中?

4

1 回答 1

0

你写了:

API:s3v4

据我所知,helm 不能原生使用 s3,所以在我们的场景中,我们使用了提供 s3 协议支持的helm s3 插件。

GitHub 回购:https ://github.com/hypnoglow/helm-s3

根据您的情况,您可能还需要设置一些环境变量,请参阅https://github.com/hypnoglow/helm-s3/blob/master/hack/integration-tests-local.sh#L9了解更多详细信息(提示:S3-Endpoint URL 是通过 AWS_ENDPOINT ENV-variable 设置的,因此请确保已设置)

安装和配置插件后,我能够初始化并添加 repo。

请务必初始化您的 repo(请注意,端点 URL 不是 s3-url 的一部分。s3 插件使用 AWS_ENDPOINT ENV 变量来设置端点 URL。“test-bucket/charts”是存储桶的位置定义的回购):

helm s3 init s3://test-bucket/charts

这是设置 repo 并添加 index.yaml

然后,您可以添加回购

helm repo add repo-name s3://test-bucket/charts

添加回购后,您可以推送图表

helm s3 push chart.tgz repo-name

另请查看以下脚本,它帮助我了解正确添加、初始化和使用 repo 所需的步骤: https ://github.com/hypnoglow/helm-s3/blob/master/hack/integration-tests .sh

此外,推送时插件会自动完成索引(请参阅https://github.com/hypnoglow/helm-s3#push

于 2020-10-21T07:13:41.033 回答