2016-10-18 6 views
3

貴重なKubernetes guru's!Kubernetes:mount:AWS EBSボリュームを接続するときに特別なデバイスが存在しません

私は、手動で作成したAWSホスト上で、「contrib」Ansibleプレイブック(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をしようバージョンはこれを解決するのに役立たなかった。 誰でも問題を理解するために他に何ができるのか教えてください。問題を解決できますか?どんな助けでも大歓迎です。

「のcontrib」Ansibleの脚本(https://github.com/kubernetes/contrib/tree/master/ansible)取り付けEBSボリュームによってインストールされたK8クラスタを取得するには:私の髪を引っ張っ日後、私は自分で解決策を見つけたので

答えて

7

誰もが、K8スラックチャンネルで私を助けていません正しく、IAMの役割の設定を除いて、すべてのkubelets、apiserver、およびコントローラマネージャーに、既存のクラスターに--cloud-provider = awsフラグを追加する必要があります。

なし--cloud-provider = awsフラグKubernetesは実際の原因ではなく、「マウント:特別なデバイスxxxが存在しません」というエラーメッセージを表示します。

+0

この回答を投稿していただきありがとうございます。私のためにそれを固定した。 – stephanlindauer

関連する問題