在哪里设置 aws access/secret 键以使 kube-up.sh 在 Kubernetes (aws) 中正常工作
Where to set aws access/secret key for kube-up.sh to work correctly in Kubernetes (aws)
我正在尝试使用 kube-up.sh
安装脚本在我的 AWS 帐户上设置一个 Kubernetes 集群,该脚本与位于 kubernetes/cluster/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
查看详情here
这解决了我的问题并且 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
aws 在探测之前首先查看上面的一对环境变量
~/.aws/credentials
我发现它可以更轻松地在各种 aws 帐户之间切换
我正在尝试使用 kube-up.sh
安装脚本在我的 AWS 帐户上设置一个 Kubernetes 集群,该脚本与位于 kubernetes/cluster/kube-up.sh
但是当我 运行 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
查看详情here
这解决了我的问题并且 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
aws 在探测之前首先查看上面的一对环境变量
~/.aws/credentials
我发现它可以更轻松地在各种 aws 帐户之间切换