使用AWS弹性块存储的Kubernetes

时间:2015-09-11 11:42:48

标签: amazon-web-services amazon-ec2 kubernetes

我们正尝试使用AWS Elastic Block Store(EBS)在AWS实例中配置kubernetes RC。这是我们的控制器yaml文件的关键部分 -

      volumeMounts:
        - mountPath: "/opt/phabricator/repo"
          name: ebsvol
  volumes:
    -
      name: ebsvol
      awsElasticBlockStore:
        volumeID: aws://us-west-2a/vol-*****
        fsType: ext4

我们的rc可以启动pod并且工作正常而不将其安装到AWS EBS,但是在AWS EBS中安装了卷,它给了我们 -

Fri, 11 Sep 2015 11:29:14 +0000 Fri, 11 Sep 2015 11:29:34 +0000 3   {kubelet 172.31.24.103}         failedMount Unable to mount volumes for pod "phabricator-controller-zvg7z_default": error listing AWS instances: NoCredentialProviders: no valid providers in chain
  Fri, 11 Sep 2015 11:29:14 +0000   Fri, 11 Sep 2015 11:29:34 +0000 3   {kubelet 172.31.24.103}         failedSync  Error syncing pod, skipping: error listing AWS instances: NoCredentialProviders: no valid providers in chain

我们在.aws目录中有一个带有适当凭据的凭据文件。但它不起作用。 我们错过了什么吗?这是配置问题吗?

Kubectl版本:1.0.4和1.0.5(两者都试过)

1 个答案:

答案 0 :(得分:4)

我们提出了一个问题来讨论这个问题: https://github.com/kubernetes/kubernetes/issues/13858

这里推荐的方法是使用IAM实例配置文件。 kube-up确实为你配置了这个,如果你没有使用kube-up,我建议你去看它以模仿它的作用!

虽然我们最近合并了对使用.aws凭证文件的支持,但我不认为它已被反向移植到任何版本中,并且它不是我(个人)推荐的方式。

听起来你没有使用kube-up;如果你可以使用它,你可能会觉得更容易(而且我很想知道你是否有某些理由不能或不想使用kube-up,因为我个人正在研究一种我希望会遇到的替代方案每个人的需求!)

我也很想知道IAM实例配置文件是否因某种原因不适合你。