搭了一个ceph集群,健康状态是health_warn
然后去k8s创建了cephfs-provisioner,ceph-secret和storageclass。创建pvc的时候一直pending,报错如下:
waiting for a volume to be created, either by external provisioner "ceph.com/cephfs" or manually created by system administrator
查看cephfs-provisioner的日志,报错如下:
failed to provision volume with StorageClass "cephfs": fork/exec /usr/local/bin/cephfs_provisioner: invalid argument
应该怎么解决呢?
参考一下ChatGPT的分析:
可能是cephfs-provisioner的配置有问题,应该检查一下配置,比如ceph的集群信息,username,secret等是否正确。另外,也可以尝试重新部署cephfs-provisioner来解决问题。
以下答案引用自GPT-3大模型,请合理使用:
,谢谢。
1、检查ceph集群的健康状态,并修复问题;
2、检查cephfs-provisioner pod日志,是否有相关错误存在;
3、确保 /usr/local/bin/cephfs_provisioner 这个程序有可执行权限;
4、确保当前cephfs-provisioner的容器可以连接ceph集群;
5、重新部署cephfs-provisioner,代码如下:
apiVersion: v1
kind: ServiceAccount
metadata:
name: cephfs-provisioner
namespace: ceph
---
apiVersion: apps/v1 # apiVersion might be apps/v1 or apps/v1beta2 depending on K8s version
kind: Deployment
metadata:
name: cephfs-provisioner
namespace: ceph
spec:
replicas: 1
selector:
matchLabels:
app: cephfs-provisioner
template:
metadata:
labels:
app: cephfs-provisioner
spec:
serviceAccountName: cephfs-provisioner
containers:
- name: cephfs-provisioner
image: quay.io/external_storage/cephfs-provisioner:latest
env:
- name: PROVISIONER_NAME
value: ceph.com/cephfs
- name: CEPH_MON
value: 192.168.1.11,192.168.1.12,192.168.1.13 # 此处为ceph集群mon地址
- name: CEPH_USER
value: ceph
- name: CEPH_SECRET_NAME
value: ceph-secret
- name: CEPH_FS_NAME
value: cephfs # 此处为cephfs的名称
volumeMounts:
- mountPath: /etc/ceph
name: ceph-config
readOnly: true
volumes:
- name: ceph-config
secret:
secretName: ceph-config-map
如果我的回答解决了您的问题,请采纳我的回答
问题解决了,是因为我配置文件连接的ceph集群里的主机ip写错了。不过这种报错真的模糊