【发布时间】:2017-02-27 18:38:51
【问题描述】:
尊敬的 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 版本并没有帮助我解决这个问题。 谁能指出我还能做些什么来理解这个问题,以便我可以解决它?非常感谢任何帮助。
【问题讨论】:
标签: amazon-web-services amazon-ec2 kubernetes amazon-ebs