我试图在CoreOS下由kubernetes创建的pod中安装ceph RDB卷。
beta (1153.4.0)
v1.3.7+coreos.0
jewel
使用此POD:
{
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"name": "rbd2"
},
"spec": {
"containers": [
{
"name": "rbd-rw",
"image": "nginx",
"volumeMounts": [
{
"mountPath": "/mnt/rbd",
"name": "rbdpd"
}
]
}
],
"volumes": [
{
"name": "rbdpd",
"rbd": {
"monitors": [
"10.203.69.254"
],
"pool": "rbd",
"image": "foo",
"user": "admin",
"secretRef": {
"name": "ceph-secret"
},
"fsType": "ext4",
"readOnly": true
}
}
]
}
}
如果我启动此广告连播已创建,但保持状态:ContainerCreating
问题是pod似乎无法创建rbd设备。
如果我连接到已部署pod的节点并使用rbdmap命令在主机上创建rbd设备,则设备将创建,并且pod可以安装卷。然后,广告连播的状态将切换为Running
如果我删除了pod,则会自动删除rbd设备。
要恢复,可能导致kubernetes无法创建rbd设备的问题。
答案 0 :(得分:1)
如果您使用CoreOS kubelet-wrapper脚本来启动kubelet,您应该可以通过添加一些额外的挂载点来使用rbd设备。
kubelet-wrapper的RKT_OPTS示例覆盖:
[Service]
Environment="RKT_OPTS=--volume modprobe,kind=host,source=/usr/sbin/modprobe \
--mount volume=modprobe,target=/usr/sbin/modprobe \
--volume lib-modules,kind=host,source=/lib/modules \
--mount volume=lib-modules,target=/lib/modules \
Environment=KUBELET_VERSION=v1.3.7_coreos.0
...