使用AWS弹性块存储的Kubernetes

5 amazon-ec2 amazon-web-services 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
Run Code Online (Sandbox Code Playgroud)

我们的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
Run Code Online (Sandbox Code Playgroud)

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

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

小智 4

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

此处推荐的方法是使用 IAM 实例配置文件。kube-up 确实为您配置了此功能,如果您不使用 kube-up,我建议您查看它以模拟它的功能!

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

听起来你没有使用 kube-up;如果您可以使用它,您可能会发现它更容易(并且我很想知道是否有某些原因您不能或不想使用 kube-up,因为我个人正在研究一种我希望能够满足的替代方案大家的需求!)

我还想知道 IAM 实例配置文件是否由于某种原因不适合您。