【问题标题】:Where to set aws access/secret key for kube-up.sh to work correctly in Kubernetes (aws)在哪里设置 aws 访问/密钥,以便 kube-up.sh 在 Kubernetes (aws) 中正常工作
【发布时间】:2015-08-17 03:57:23
【问题描述】:

我正在尝试使用与 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 访问密钥和密钥。我将它存储在 .aws/config 中。我不确定我应该在哪里设置它才能正确读取和工作。

【问题讨论】:

    标签: amazon-web-services kubernetes


    【解决方案1】:

    经过一番搜索,我找到了解决问题的方法。

    很多 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 在我完成此操作后完美运行。

    【讨论】:

      【解决方案2】:

      另一种方法是填充环境变量...将以下命令放入文件 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 帐户之间切换

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-11
        • 2017-08-26
        • 2015-12-29
        • 2020-07-21
        • 1970-01-01
        • 2019-09-25
        • 1970-01-01
        相关资源
        最近更新 更多