我们正尝试使用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(两者都试过)
答案 0 :(得分:4)
我们提出了一个问题来讨论这个问题: https://github.com/kubernetes/kubernetes/issues/13858
这里推荐的方法是使用IAM实例配置文件。 kube-up确实为你配置了这个,如果你没有使用kube-up,我建议你去看它以模仿它的作用!
虽然我们最近合并了对使用.aws凭证文件的支持,但我不认为它已被反向移植到任何版本中,并且它不是我(个人)推荐的方式。
听起来你没有使用kube-up;如果你可以使用它,你可能会觉得更容易(而且我很想知道你是否有某些理由不能或不想使用kube-up,因为我个人正在研究一种我希望会遇到的替代方案每个人的需求!)
我也很想知道IAM实例配置文件是否因某种原因不适合你。