我正在尝试使用与kubernetes / cluster / kube-up.sh上的kubernetes源捆绑的kube-up.sh
安装脚本在我的AWS账户上设置Kubernetes集群
但是当我运行kube-up.sh时,我收到以下错误:
pranjal:~/go/src/github.com/GoogleCloudPlatform/kubernetes/cluster$ ./kube-up.sh
Starting cluster using os distro: ubuntu
Starting cluster using provider: aws
... calling verify-prereqs
... calling kube-up
Uploading to Amazon S3
Creating kubernetes-staging-6b790c161af2b2c39939b542c73b775a
make_bucket failed: s3://kubernetes-staging-6b790c161af2b2c39939b542c73b775
我确信我的工具无法读取我的AWS Access Key和Secret。我将它存储在.aws / config中。我不知道应该在哪里设置它,以便能够正确读取并工作。
答案 0 :(得分:2)
经过一番搜索,我找到了问题的解决方案。
很多AWS配置都会进入config-default.sh文件。但是没有选项可以在那里设置访问密钥ID,秘密访问密钥(这可能有一定意义,因为cluster / aws / config-default.sh文件是源代码的一部分,并且凭据应该保存在其他地方,在一个更安全的地方)
在看到kubernetes / cluster / aws / util.sh源代码后,我意识到kubernetes实际上在内部调用 aws 命令行工具来对AWS基础架构进行更改。
因此,正确安装和配置AWS命令行工具可以解决此问题。
我发出以下命令后:
aws configure
并回答了输入ID / Key的提示,它将这些值保存到此文件中:
~/.aws/credentials
查看详情here
这解决了我的问题,kube-up.sh完成后就完美了。
答案 1 :(得分:0)
另一种方法是填充环境变量...将以下命令放入文件xxxxx
export AWS_ACCESS_KEY_ID=$(cat ${AWS_ACCOUNT_CONFIGDIR}/id)
export AWS_SECRET_ACCESS_KEY=$(cat ${AWS_ACCOUNT_CONFIGDIR}/key)
然后在调用kube-up.sh之前获取该文件
source xxxxx
kube-up.sh
aws在探测之前首先查看上面的一对env变种
~/.aws/credentials
我发现可以更轻松地在各种帐户之间切换