0

我已经使用官方 helm 图表部署了 rook。

在我的 Kubernetes 节点上,主机文件系统是 xfs,但默认情况下 rook 需要一个 ext4 文件系统。

所以我用值覆盖了cephFileSystems[0].storageClass.parameters.csi.storage.k8s.io/fstype舵图中的参数xfs

但是现在,helm 会生成一个 Kubernetes 清单

allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: 'false'
  labels:
    argocd.argoproj.io/instance: rook-operator
  name: ceph-filesystem
parameters:
  clusterID: rook-ceph
  csi:
    storage:
      k8s:
        io/fstype: xfs
[...]

但是 Kubernetes 中的 CRD io.k8s.api.storage.v1.StorageClass 不接受它并出现错误:

error validating data: ValidationError(StorageClass.parameters.csi): invalid type for io.k8s.api.storage.v1.StorageClass.parameters: got "map", expected "string"

如何正确设置xfsOSD 的文件系统?

提前致谢。

最好的问候, rforberger

4

1 回答 1

0

我想我自己解决了。

我变了

csi.storage.k8s.io/fstype: xfs

"csi.storage.k8s.io/fstype": xfs

在官方 rook-ceph-cluster helm chart 的 values.yaml 文件中。

这样生成的清单看起来像:

# Source: rook-ceph-cluster/templates/cephfilesystem.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ceph-filesystem
  annotations:
    storageclass.kubernetes.io/is-default-class: "false"
provisioner: rook-ceph.cephfs.csi.ceph.com
parameters:
  fsName: ceph-filesystem
  pool: ceph-filesystem-data0
  clusterID: default
  csi.storage.k8s.io/controller-expand-secret-name: rook-csi-cephfs-provisioner
  csi.storage.k8s.io/controller-expand-secret-namespace: rook-ceph
  csi.storage.k8s.io/node-stage-secret-name: rook-csi-cephfs-node
  csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph
  csi.storage.k8s.io/provisioner-secret-name: rook-csi-cephfs-provisioner
  csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph
  csi.storage.k8s.io/fstype: xfs
reclaimPolicy: Delete
allowVolumeExpansion: true

这很好。

于 2022-01-14T11:31:11.017 回答