通过 nginx-ingress 控制器的 MinIO AWS CLI

MinIO AWS CLI via nginx-ingress controller

运行 MinIO (https://docs.min.io/) 在 kubernetes 1.12 上。我无法通过 nginx-ingress 运行 aws cli 命令。当端口转发直接到 kubernetes 服务时,命令工作正常。

尝试过

 proxy_set_header Host $http_host;

 more_set_input_headers 'Host: minio:9000';

nginx 规则但没有运气。

请求示例:

aws s3 ls --endpoint-url https://my-endpoint-url.com --profile=minio

无法列出存储桶内容。而是收到错误:

An error occurred (SignatureDoesNotMatch) when calling the ListBuckets operation: The request signature we calculated does not match the signature you provided. Check your key and signing method.

重写后这变成了一个问题。 (损坏的预签名网址。)

nginx.ingress.kubernetes.io/rewrite-target: /mybucket/$1

删除重写并修改请求中的路径,解决了问题。