Kubernetes CEPFS卷装载失败
我已经使用成功部署了Kubernetes群集和Ceph群集,并且能够使用以下方法手动装载CephFS设备:Kubernetes CEPFS卷装载失败,kubernetes,ceph,Kubernetes,Ceph,我已经使用成功部署了Kubernetes群集和Ceph群集,并且能够使用以下方法手动装载CephFS设备: sudo mount-t ceph monitor1:6789://ceph-o name=admin,secretfile=/etc/ceph/cepfs.secret 我现在尝试使用kubernetes示例发射吊舱: 当我跑步时: sudo kubectl create-f cepfs.yml 我收到以下错误: 警告FailedMountVolume。卷的安装失败 “kubernete
sudo mount-t ceph monitor1:6789://ceph-o name=admin,secretfile=/etc/ceph/cepfs.secret
我现在尝试使用kubernetes示例发射吊舱:
当我跑步时:
sudo kubectl create-f cepfs.yml
我收到以下错误:
警告FailedMountVolume。卷的安装失败
“kubernetes.io/cephfs/445ee063-d1f1-11e6-a3e3-1418776a29a6-cephfs”
(规范名称:“CEPFS”)吊舱“445ee063-d1f1-11e6-a3e3-1418776a29a6”(UID:
“445ee063-d1f1-11e6-a3e3-1418776a29a6”)带:CEPFS:安装失败:
装载失败:fork/exec/bin/mount:装载参数无效
参数:monitor1:6789、monitor2:6789、monitor3:6789:/data
/var/lib/kubelet/pods/445ee063-d1f1-11e6-a3e3-1418776a29a6/volumes/kubernetes.io~cepfs/cepfs
ceph[名称=管理员,机密=机密]
kubernetes manager容器是否需要安装ceph fs common包才能成功装载?我找不到任何进一步的调试信息来确定错误的原因。AFAIK您可能在这里遇到两个问题:
- Ceph要求机器的ip地址才能工作
- 运行容器的操作系统是装载存储的操作系统:需要在该机器上安装ceph工具。容器完全不知道已装入的磁盘
secretfile
而不是Kubernetessecret
:
apiVersion: v1
kind: Pod
metadata:
name: cephfs-test
spec:
containers:
- name: cephfs-rw
image: kubernetes/pause
volumeMounts:
- mountPath: "/mnt/cephfs"
name: cephfs
volumes:
- name: cephfs
cephfs:
monitors:
- "<monitor1>:6789"
- "<monitor2>:6789"
- "<<monitor3>:6789"
user: admin
# Omit for CephFS mounting error
# secretRef:
# name: ceph-secret
secretFile: "/etc/ceph/user.secret"
readOnly: false
Full gist所有kubernetes节点都安装了
ceph fs common
,并且工作正常,因为我可以手动装载到主机操作系统。此外,IP地址也用于实际的yaml配置中,具有相同的结果。
apiVersion: v1
kind: Pod
metadata:
name: cephfs-test
spec:
containers:
- name: cephfs-rw
image: kubernetes/pause
volumeMounts:
- mountPath: "/mnt/cephfs"
name: cephfs
volumes:
- name: cephfs
cephfs:
monitors:
- "<monitor1>:6789"
- "<monitor2>:6789"
- "<<monitor3>:6789"
user: admin
# Omit for CephFS mounting error
# secretRef:
# name: ceph-secret
secretFile: "/etc/ceph/user.secret"
readOnly: false
docker exec $KUBELET_ID apt-get update
docker exec $KUBELET_ID apt-get install -y wget lsb-release apt-transport-https
docker exec $KUBELET_ID /bin/bash -c "wget -q -O- 'https://download.ceph.com/keys/release.asc' | apt-key add -"
RELEASE=$(docker exec $KUBELET_ID lsb_release -sc)
docker exec $KUBELET_ID /bin/bash -c "echo deb https://download.ceph.com/debian-jewel/ $RELEASE main | tee /etc/apt/sources.list.d/ceph.list"
docker exec $KUBELET_ID apt-get update
docker exec $KUBELET_ID apt-get install -y ceph-fs-common ceph-common
docker exec $KUBELET_ID mkdir -p /etc/ceph
docker exec $KUBELET_ID /bin/bash -c "echo $CEPH_SECRET > /etc/ceph/admin.secret"