amazon-web-services - Kubernetes:挂载:附加 AWS EBS 卷时不存在特殊设备

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

亲爱的 Kubernetes 大师!

我已经使用“contrib”Ansible playbook ( https://github.com/kubernetes/contrib/tree/master/ansible ) 在手动创建的 AWS 主机上旋转了 kube 1.4.1 集群。

我的问题是 Kube 没有将 EBS 驱动器附加到 Minion 主机。如果我将 pod 定义如下:

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata:
  name: kafka1
spec:
  replicas: 1
  template:
    spec:
      containers:
      - name: kafka1
        image: daniilyar/kafka
        ports:
        - containerPort: 9092 
          name: clientconnct
          protocol: TCP
        volumeMounts:
        - mountPath: /kafka
          name: storage
      volumes:
      - name: storage
        awsElasticBlockStore:
          volumeID: vol-56676d83
          fsType: ext4

我在 kubelet.log 中收到以下错误:
Mounting arguments: /var/lib/kubelet/plugins/kubernetes.io/aws-ebs/mounts/vol-56676d83 /var/lib/kubelet/pods/db213783-9477-11e6-8aa9-12f3d1cdf81a/volumes/kubernetes.io~aws-ebs/storage  [bind]
Output: mount: special device /var/lib/kubelet/plugins/kubernetes.io/aws-ebs/mounts/vol-56676d83 does not exist

EBS 卷在此期间一直处于“可用”状态,因此我确信 Kube 根本不会将 卷附加到主机,因此 不会挂载 它。
我 100% 确定这是 Kubernetes 本身的问题,而不是权限问题,因为我可以从这个 minion 手动挂载相同的卷到这个 minion 就好了:
$ aws ec2 --region us-east-1 attach-volume --volume-id vol-56676d83 --instance-id $(wget -q -O - http://instance-data/latest/meta-data/instance-id) --device /dev/sdc
{
    "AttachTime": "2016-10-18T15:02:41.672Z", 
    "InstanceId": "i-603cfb50", 
    "VolumeId": "vol-56676d83", 
    "State": "attaching", 
    "Device": "/dev/sdc"
}

谷歌搜索、黑客攻击和尝试旧的 K8 版本并没有帮助我解决这个问题。
任何人都可以请我指出我还能做些什么来理解这个问题,以便我可以解决它?任何帮助是极大的赞赏。

最佳答案

在 K8 Slack channel 没有人帮助我,所以经过一天的脱发后,我自己找到了解决方案:

要通过“contrib”Ansible playbook (https://github.com/kubernetes/contrib/tree/master/ansible) 正确安装 EBS 卷来安装 K8 集群,除了 IAM 角色设置,您需要将 --cloud-provider=aws 标志添加到现有集群:所有 kubelets、 apiserver 和 Controller 管理器。

如果没有 --cloud-provider=aws 标志,Kubernetes 会给你一个不友好的“mount: special device xxx does not exist”错误而不是真正的原因。

关于amazon-web-services - Kubernetes:挂载:附加 AWS EBS 卷时不存在特殊设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40109083/

相关文章:

html - 背景图像 :url not working for amazon s3 image

amazon-web-services - API Gateway lambda 授权方自定义状态代码

amazon-ec2 - Amazon EC2 上的 Hadoop : Job tracker not starting properly

ubuntu - AWS EC2 (RHEL) 上的 Docker 安装不工作

amazon-web-services - 如何查看CLI的默认配置文件?

events - 如何使用 kubernetes lib 观看所有事件

spring - Openshift Pod自动缩放

powershell - 是否可以不使用适用于.NET的AWS开发工具包从Powershell将文件上传到S3?

php - xDebug Remote_connect_back 不适用于 AWS EC2 实例

postgresql - Kubernetes 上的 Postgres 密码验证失败