2016-10-18 7 views
3

친애하는 Kubernetes 전문가입니다!Kubernetes : mount : AWS EBS 볼륨을 장착 할 때 특별한 장치가 존재하지 않습니다.

필자는 수동으로 생성 된 AWS 호스트에서 'contrib'Ansible playbook (https://github.com/kubernetes/contrib/tree/master/ansible)을 사용하여 kube 1.4.1 클러스터를 회전 시켰습니다.

내 문제는 Kube가 EBS 드라이브를 미니언 호스트에 연결하지 않는다는 것입니다. 내가 포드를 정의하면 다음과 같이

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 은 호스트에 볼륨을 전혀 연결하지 않으므로 을 마운트하지 않습니다. 나는 나는 내가 잘이 미니언이 미니언 내에서 수동으로 동일한 볼륨을 마운트 할 수 있기 때문에 이것이는 Kubernetes 자체가 문제가 아니라 권한 부여에 문제가 있음을 100 % 확인 :

$ 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을 버전은이 문제를 해결하는 데 도움이되지 않았습니다. 누구든지 문제를 이해하기 위해 내가 할 수있는 일을 지적하여 문제를 해결할 수 있습니까? 어떤 도움이라도 대단히 감사합니다.

답변

7

아무도 K8 여유 채널에서 저를 도와, 그래서 내 머리를 당기는 하루 만에 나 자신에 의해 해결책을 발견 :

는 '있는 contrib'Ansible 각본 (https://github.com/kubernetes/contrib/tree/master/ansible)에 의해 설치된 K8 클러스터를 얻으려면 EBS 볼륨을 마운트를 제대로, IAM 역할 설치를 제외하고, 기존 클러스터에 --cloud-provider = aws 플래그를 추가해야합니다 : 모든 kubelets, apiserver 및 컨트롤러 관리자.

없이 --cloud-provider = aws 플래그 Kubernetes는 실제 원인 대신 '부적합한'특수 장치 xxx가 존재하지 않음 '오류를 표시합니다.

+0

이 답변을 게시 해 주셔서 감사합니다. 나를 위해 그것을 고쳤다. – stephanlindauer