amazon web services -在哪里设置aws访问/密钥,以便kube-up.sh在Kubernetes (



我试图在我的AWS账户上使用与Kubernetes源代码捆绑在Kubernetes/cluster/kube-up.sh的kube-up.sh安装脚本设置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访问密钥和秘密。我将其存储在.aws/config中。我不确定我应该在哪里设置它,使它能够正确阅读和工作。

经过一番搜索,我想出了一个解决问题的办法。

很多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

详情见此处

这解决了我的问题,kube-up.sh在我这样做之后运行得很好。

另一种方法是填充环境变量…将以下命令放入文件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 

在探测

之前首先查看上面的一对env变量。
~/.aws/credentials

,我发现它更容易在不同的aws帐户之间切换

相关内容

最新更新