在哪里设置aws访问/密钥kube-up.sh在Kubernetes(aws)中正常工作

时间:2015-06-03 05:39:35

标签: amazon-web-services kubernetes

我正在尝试使用与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中。我不知道应该在哪里设置它,以便能够正确读取并工作。

2 个答案:

答案 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
我发现

可以更轻松地在各种帐户之间切换