运行 AWS 上的 Kubernetes 时出现 NoSuchBucket 错误

NoSuchBucket error when running Kubernetes on AWS

从以下位置下载 Kubernetes 1.1.8:

https://github.com/kubernetes/kubernetes/releases/download/v1.1.8/kubernetes.tar.gz

按照以下位置的说明进行操作:

https://github.com/kubernetes/kubernetes/blob/master/docs/getting-started-guides/aws.md

并得到以下错误:

kubernetes-1.1.8 > ./kubernetes/cluster/kube-up.sh 
... Starting cluster using provider: aws
... calling verify-prereqs
... calling kube-up
Starting cluster using os distro: vivid
Uploading to Amazon S3
Creating kubernetes-staging-0eaf81fbc51209dd47c13b6d8b424149
make_bucket: s3://kubernetes-staging-0eaf81fbc51209dd47c13b6d8b424149/

A client error (NoSuchBucket) occurred when calling the GetBucketLocation operation: The specified bucket does not exist
+++ Staging server tars to S3 Storage: kubernetes-staging-0eaf81fbc51209dd47c13b6d8b424149/devel
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help
aws: error: argument --region: expected one argument

AWS 控制台显示存储桶已创建但为空。

可能是地区问题;我猜测该存储桶是在 Kubernetes 尝试访问的另一个区域中创建的。 看起来 aws cmdline 工具对该区域感到困惑: aws: error: argument --region: expected one argument

当无法确定地区时,默认为美国地区之一。

编辑:S3 同步由脚本 cluster/aws/util.sh 触发。 执行的命令是aws s3 sync --region ${s3_bucket_location} --exact-timestamps ${local_dir} "s3://${AWS_S3_BUCKET}/${staging_path}/".

您可以在上面的行前添加一个echo ${s3_bucket_location}。它应该为您提供有关区域设置的更多信息。