ROOK 部署nfs-ganesha

0、环境

rook 集群网络模式是host

  • ROOK 1.5.1(已经创建cephfs)
  • kubernetes 1.18.9
  • calico

1、部署NFS CRD

apiVersion: ceph.rook.io/v1
kind: CephNFS
metadata:
  name: my-nfs
  namespace: rook-ceph
spec:
  rados:
    # 存储ganesha数据和配置的pool,这里指定的是cephfs的一个pool
    pool: myfs-data0
    namespace: ganesha-ns
  server:
    # 指定 nfs-server 数量
    active: 1
    # 指定 ganesha-mds部署节点
    placement:
      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
          - matchExpressions:
            - key: ganesha-mds
              operator: In
              values:
              - enabled
    resources:

2、通过ceph dashboard配置NFS-GANESHA

为了在Ceph仪表板中启用NFS-Ganesha exports的管理,我们需要告诉仪表板RADOS池和存储配置对象的名称空间。然后,Ceph仪表板可以通过遵循命名约定来访问它们

dashboard配置如下

# 命令格式
# ceph dashboard set-ganesha-clusters-rados-pool-namespace <pool_name>[/<namespace>]
kubectl -n rook-ceph exec -it $TOOLS_POD -- ceph dashboard set-ganesha-clusters-rados-pool-namespace myfs-data0/ganesha-ns

查看dashboard功能状态

[root ceph]# kubectl -n rook-ceph exec -it $TOOLS_POD -- ceph dashboard feature status
Feature 'rbd': enabled
Feature 'mirroring': enabled
Feature 'iscsi': enabled
Feature 'cephfs': enabled
Feature 'rgw': enabled
Feature 'nfs': enabled

之后,我们就可以在web ui 配置NFS-Ganesha了。

ui 配置如下

ROOK 部署nfs-ganesha

3、测试挂载

为了集群外部节点可以使用nfs,所以我的nfs-ganesha是host 网络模式,如果你是集群网络,需要把server的ip做成ingress /nodeport 暴露出去

[root@ceph ~]# yum install -y nfs-utils
[root@ceph ~]# systemctl start rpcbind
[root@ceph ~]# mount -t nfs -o port=2049 192.168.7.166:/cephfs /mnt/rook
[root@ceph ~]# dfh|grep rook
192.168.7.166:/cephfs            1.1T   99G  998G   9% /mnt/rook

参考文档

https://docs.ceph.com/en/latest/mgr/dashboard/#dashboard-nfs-ganesha-management

https://github.com/rook/rook/blob/master/design/ceph/ceph-nfs-ganesha.md

猜你喜欢

转载自blog.51cto.com/foxhound/2588463