RookCeph安装
2607 字
13 分钟
RookCeph安装
一, 安装
1 下载代码
git clone --single-branch --branch v1.10.0 https://github.com/rook/rook.git2 修改配置文件
2.1 operator.yaml
# 修改镜像地址 ROOK_CSI_CEPH_IMAGE: "quay.io/cephcsi/cephcsi:v3.6.2" ROOK_CSI_REGISTRAR_IMAGE: "ccr.ccs.tencentyun.com/ccops/csi-node-driver-registrar:v2.5.1" ROOK_CSI_RESIZER_IMAGE: "ccr.ccs.tencentyun.com/ccops/csi-resizer:v1.4.0" ROOK_CSI_PROVISIONER_IMAGE: "ccr.ccs.tencentyun.com/ccops/csi-provisioner:v3.1.1" ROOK_CSI_SNAPSHOTTER_IMAGE: "ccr.ccs.tencentyun.com/ccops/csi-snapshotter:v6.0.1" ROOK_CSI_ATTACHER_IMAGE: "ccr.ccs.tencentyun.com/ccops/csi-attacher:v3.4.0" ROOK_CSI_NFS_IMAGE: "ccr.ccs.tencentyun.com/ccops/nfsplugin:v4.0.0"2.2 cluster.yaml
这里只做了简单配置,详细配置参考文档
# 添加Ceph配置kind: ConfigMapapiVersion: v1metadata: name: rook-config-override namespace: rook-ceph # namespace:clusterdata: config: | [global] osd_pool_default_size = 1 # 一般为3或1,测试1,生产为3 mon_warn_on_pool_no_redundancy = false # 关闭强制配置副本 bdev_flock_retry = 20 bluefs_buffered_io = false---# 监控配置, 安装监控后启用,要不然报错 monitoring: enabled: false# 开启 mgr: count: 2 allowMultiplePerNode: false modules: - name: pg_autoscaler enabled: true# 配置 dashboard dashboard: enabled: true port: 8080 # 指定端口 ssl: false # 关闭https# 开启host network, 注意端口占用 provider: host# 配置存储 nodes: - name: "10.1.1.1" devices: - name: "sdb" - name: "10.1.1.2" devices: - name: "sdb" - name: "10.1.1.3" devices: - name: "sdb"# 配置调度节点(需提前打好标签) placement: mgr: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: role operator: In values: - rook-mgr-node osd: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: role operator: In values: - rook-osd-node3 部署
3.1 rook-operator
# cd rook-1.9.10/deploy/examples# kubectl create -f crds.yaml -f common.yaml -f operator.yaml# kubectl -n rook-ceph get podNAME READY STATUS RESTARTS AGErook-ceph-operator-6497755589-vs5rt 1/1 Running 0 2d23h### CephCluster3.2 监控
因为我们有自己的 Prometheus Operator, 而 rook ceph 也有 Operator 不能共存,所以无法集成到自己的 Prometheus , 采用 root ceph 单独部署 Prometheus 方案
3.3 部署 Prometheus
wget https://raw.githubusercontent.com/coreos/prometheus-operator/v0.40.0/bundle.yaml# 修改subjects:- kind: ServiceAccount name: prometheus-operator namespace: kube-system # 要部署的命名空间,这个很重要,默认defaultcd rook/deploy/examples/monitoringkubectl create -f service-monitor.yamlkubectl create -f prometheus.yamlkubectl create -f prometheus-service.yaml3.3.1 配置 Grafana
模板地址,全都加上,监控不怕多
3.3.1.1 安装插件
grafana-cli plugins install grafana-piechart-panelgrafana-cli plugins install vonage-status-panel3.3.1.2 配置 Grafana
defaults.ini,grafana.ini 都要修改
[alerting]execute_alerts = trueallow_embedding = true
[auth.anonymous]enabled = trueorg_name = Main Org.org_role = Viewer3.3.1.3 配置数据源
名字不要修改

3.3.2 Dashboard 集成 Grafana
kubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- bash# grafana url: https://xx.com:3000/ceph dashboard set-grafana-api-url ${grafana url}# 允许自签名证书ceph dashboard set-grafana-api-ssl-verify False3.3.3 查看
这部是后面操作完查看的

3.4 CephCluster
以下 pod 为正常
# kubectl create -f cluster.yaml# kubectl -n rook-ceph get podNAME READY STATUS RESTARTS AGEcsi-cephfsplugin-7tqw8 2/2 Running 0 2d23hcsi-cephfsplugin-k22lg 2/2 Running 0 2d23hcsi-cephfsplugin-m2crv 2/2 Running 0 2d23hcsi-cephfsplugin-provisioner-5dbbcdf76-99tx5 5/5 Running 0 2d23hcsi-cephfsplugin-provisioner-5dbbcdf76-bqmz9 5/5 Running 0 2d23hcsi-rbdplugin-bdlwq 2/2 Running 0 2d23hcsi-rbdplugin-dsk5w 2/2 Running 0 2d23hcsi-rbdplugin-provisioner-7c5c5b699-9bzcq 5/5 Running 0 2d23hcsi-rbdplugin-provisioner-7c5c5b699-jwsm9 5/5 Running 0 2d23hcsi-rbdplugin-tljkh 2/2 Running 0 2d23hrook-ceph-crashcollector-k8s-ceph-100-6b966fbfdd-hq2cf 1/1 Running 0 2d23hrook-ceph-crashcollector-k8s-ceph-136-6b76f4c697-trxlf 1/1 Running 0 2d23hrook-ceph-crashcollector-k8s-ceph-142-696bcc5974-8tvjf 1/1 Running 0 2d23hrook-ceph-mgr-a-7cd79f499c-lqfgc 2/2 Running 0 2d17hrook-ceph-mgr-b-5b5746f69f-wfd22 2/2 Running 0 2d17hrook-ceph-mon-a-845779bff7-bz8gz 1/1 Running 0 2d23hrook-ceph-mon-b-54dbc6c98d-m7psh 1/1 Running 0 2d23hrook-ceph-mon-c-b7bcb5764-cjhvc 1/1 Running 0 2d23hrook-ceph-operator-6497755589-vs5rt 1/1 Running 0 2d23hrook-ceph-osd-0-5c69ff6cb4-g428b 1/1 Running 0 2d23hrook-ceph-osd-1-ff44fddf7-pczt4 1/1 Running 0 2d23hrook-ceph-osd-2-5868fd8dbd-jq4d4 1/1 Running 0 2d23hrook-ceph-osd-prepare-k8s-ceph-100-kqtg8 0/1 Completed 0 2d19hrook-ceph-osd-prepare-k8s-ceph-136-2w9lh 0/1 Completed 0 2d19hrook-ceph-osd-prepare-k8s-ceph-142-8ljp5 0/1 Completed 0 2d19hrook-ceph-tools-556cf9bd64-2h5kr 1/1 Running 0 2d23h3.5 查看详情
kubectl describe CephCluster -n rook-ceph rook-ceph4 工具
kubectl create -f toolbox.yamlkubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- bashceph status cluster: id: 6aa56874-3c30-4c29-abd2-5e4a1363f03c health: HEALTH_OK
services: mon: 3 daemons, quorum a,b,c (age 2d) mgr: a(active, since 2d), standbys: b osd: 3 osds: 3 up (since 2d), 3 in (since 2d)
data: pools: 3 pools, 65 pgs objects: 17 objects, 86 B usage: 80 MiB used, 600 GiB / 600 GiB avail pgs: 65 active+clean5 dashboard
# ls dashboard-*dashboard-external-https.yaml dashboard-external-http.yaml dashboard-ingress-https.yaml dashboard-loadbalancer.yaml# 根据需求选择,这里用 dashboard-external-http.yaml,注意修改端口,我改成8080了# kubectl apply -f dashboard-external-http.yaml# kubectl -n rook-ceph get svcNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGErook-ceph-mgr ClusterIP 10.43.145.9 <none> 9283/TCP 2d23hrook-ceph-mgr-dashboard ClusterIP 10.43.137.127 <none> 7000/TCP 2d17hrook-ceph-mgr-dashboard-external-http NodePort 10.43.249.105 <none> 7000:32041/TCP 2d19h5.1 访问
用户名 admin 密码:
kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data']['password']}" | base64 --decode && echo
二, 使用
1 块存储: RBD
1.1 创建 pool
apiVersion: ceph.rook.io/v1kind: CephBlockPoolmetadata: name: ccpool namespace: rook-ceph # namespace:clusterspec: enableRBDStats: true failureDomain: osd replicated: size: 3 # 三个副本,后面测试高可用需要# kubectl apply -f pool.yaml# kubectl get CephBlockPool -n rook-cephNAME PHASEccpool Ready1.2 查看
# kubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- bash[rook@rook-ceph-tools-556cf9bd64-2h5kr /]$ ceph df--- RAW STORAGE ---CLASS SIZE AVAIL USED RAW USED %RAW USEDhdd 600 GiB 600 GiB 82 MiB 82 MiB 0.01TOTAL 600 GiB 600 GiB 82 MiB 82 MiB 0.01
--- POOLS ---POOL ID PGS STORED OBJECTS USED %USED MAX AVAILccpool 6 32 19 B 1 4 KiB 0 570 GiB1.3 外部集群使用
CSI 部署与快照的使用参考:
apiVersion: v1kind: Secretmetadata: name: csi-rbd-secret namespace: kube-systemstringData: userID: admin userKey: AQA3exFjJIhtBBAAujNu5Xvc4o4DH7vY7JO9lg==---apiVersion: storage.k8s.io/v1kind: StorageClassmetadata: name: csi-rbd-scprovisioner: rbd.csi.ceph.comparameters: clusterID: 6aa56874-3c30-4c29-abd2-5e4a1363f03c pool: ccpool imageFeatures: layering csi.storage.k8s.io/provisioner-secret-name: csi-rbd-secret csi.storage.k8s.io/provisioner-secret-namespace: kube-system csi.storage.k8s.io/controller-expand-secret-name: csi-rbd-secret csi.storage.k8s.io/controller-expand-secret-namespace: kube-system csi.storage.k8s.io/node-stage-secret-name: csi-rbd-secret csi.storage.k8s.io/node-stage-secret-namespace: kube-system csi.storage.k8s.io/fstype: ext4reclaimPolicy: DeletevolumeBindingMode: ImmediateallowVolumeExpansion: truemountOptions: - discard# cat pvc.yamlapiVersion: v1kind: PersistentVolumeClaimmetadata: name: rbd-pvcspec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: csi-rbd-sc# kubectl apply -f pvc.yamlpersistentvolumeclaim/rbd-pvc created# kubectl get pvcNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGErbd-pvc Bound pvc-5b72e56c-8f06-47dc-a00e-4a67b0c1fbd0 1Gi RWO csi-rbd-sc 11s1.4 服务端查看
# rbd ls -p ccpoolcsi-vol-d6ff6220-2cc8-11ed-a287-0a7be4a0ba4b1.5 手动挂载测试
rbd feature disable ccpool/csi-vol-d6ff6220-2cc8-11ed-a287-0a7be4a0ba4b object-map fast-diff deep-flatten2 文件存储: CephFS
2.1 创建 pool
apiVersion: ceph.rook.io/v1kind: CephFilesystemmetadata: name: ccfs namespace: rook-cephspec: metadataPool: # 3副本元数据池 replicated: size: 3 dataPools: # 3副本复制池 - name: replicated replicated: size: 3 preserveFilesystemOnDelete: true metadataServer: activeCount: 1 activeStandby: true2.2 查看
# kubectl get CephFilesystem -n rook-cephNAME ACTIVEMDS AGE PHASEccfs 1 62s Ready# ceph df--- RAW STORAGE ---CLASS SIZE AVAIL USED RAW USED %RAW USEDhdd 600 GiB 600 GiB 162 MiB 162 MiB 0.03TOTAL 600 GiB 600 GiB 162 MiB 162 MiB 0.03
--- POOLS ---POOL ID PGS STORED OBJECTS USED %USED MAX AVAILccfs-metadata 7 32 90 KiB 24 372 KiB 0 190 GiBccfs-replicated 8 32 0 B 0 0 B 0 190 GiB
# 查看信息ceph fs lsname: ccfs, metadata pool: ccfs-metadata, data pools: [ccfs-replicated ]# 详细信息ceph fs dumpe8enable_multiple, ever_enabled_multiple: 1,1default compat: compat={},rocompat={},incompat={1=base v0.20,2=client writeable ranges,3=default file layouts on dirs,4=dir inode in separate object,5=mds uses versioned encoding,6=dirfrag is stored in omap,8=no anchor table,9=file layout v2,10=snaprealm v2}legacy client fscid: 1
Filesystem 'ccfs' (1)fs_nameccfsepoch8flags32 joinable allow_snaps allow_multimds_snaps allow_standby_replaycreated2023-06-09T05:37:28.081181+0000modified2023-06-09T05:37:30.036108+0000tableserver0root0session_timeout60session_autoclose300max_file_size1099511627776required_client_features{}last_failure0last_failure_osd_epoch0compatcompat={},rocompat={},incompat={1=base v0.20,2=client writeable ranges,3=default file layouts on dirs,4=dir inode in separate object,5=mds uses versioned encoding,6=dirfrag is stored in omap,7=mds uses inline data,8=no anchor table,9=file layout v2,10=snaprealm v2}max_mds1in0up{0=15684943}faileddamagedstoppeddata_pools[5]metadata_pool4inline_datadisabledbalancerstandby_count_wanted12.3 外部集群使用
CSI 部署参考:
apiVersion: v1kind: Secretmetadata: name: csi-cephfs-secret namespace: cephfsstringData: adminID: admin adminKey: AQA3exFjJIhtBBAAujNu5Xvc4o4DH7vY7JO9lg==---apiVersion: storage.k8s.io/v1kind: StorageClassmetadata: name: csi-cephfs-scprovisioner: cephfs.csi.ceph.comparameters: # ceph 集群的clusterID clusterID: 6aa56874-3c30-4c29-abd2-5e4a1363f03c # ceph 用来对接K8S的pool pool: ccfs-replicated # ceph 对接K8S的文件系统 fsName: ccfs # 上面的name csi.storage.k8s.io/provisioner-secret-name: csi-cephfs-secret csi.storage.k8s.io/provisioner-secret-namespace: cephfs csi.storage.k8s.io/controller-expand-secret-name: csi-cephfs-secret csi.storage.k8s.io/controller-expand-secret-namespace: cephfs csi.storage.k8s.io/node-stage-secret-name: csi-cephfs-secret csi.storage.k8s.io/node-stage-secret-namespace: cephfsreclaimPolicy: DeletemountOptions: - discardapiVersion: v1kind: PersistentVolumeClaimmetadata: name: csi-cephfs-pvcspec: accessModes: - ReadWriteOnce resources: requests: storage: 1M storageClassName: csi-cephfs-scapiVersion: v1kind: PersistentVolumeClaimmetadata: name: csi-cephfs-pvcspec: accessModes: - ReadWriteOnce resources: requests: storage: 1M storageClassName: csi-cephfs-sc
# kubectl get pvcNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEcsi-cephfs-pvc Bound pvc-4c5eebcf-a9d6-4ea8-8251-ea0f41b8aad3 1Mi RWO csi-cephfs-sc 1s2.4 服务端查看

2.5 手动挂载测试
# mount -t ceph 10.1.1.1:6789,10.1.1.2:6789,10.1.1.3:6789:/volumes/csi -o name=admin,secret=xxxxxx9iMd3rnzJQHaMLkw== /tmp/test# cd /tmp/test2/# lscsi-vol-0715c282-2ce5-11ed-97df-ea43b6d169653 对象存储: S3
注意节点标签
3.1 创建 zone
apiVersion: ceph.rook.io/v1kind: CephObjectRealmmetadata: name: realm-cc namespace: rook-ceph # namespace:cluster---apiVersion: ceph.rook.io/v1kind: CephObjectZoneGroupmetadata: name: zonegroup-cc namespace: rook-ceph # namespace:clusterspec: realm: realm-cc---apiVersion: ceph.rook.io/v1kind: CephObjectZonemetadata: name: zone-cc namespace: rook-ceph # namespace:clusterspec: zoneGroup: zonegroup-cc metadataPool: failureDomain: host replicated: size: 3 requireSafeReplicaSize: true dataPool: failureDomain: host replicated: size: 3 requireSafeReplicaSize: true parameters: compression_mode: nones compression_mode: none3.2 创建 pool
apiVersion: ceph.rook.io/v1kind: CephObjectStoremetadata: name: ccs3-store namespace: rook-cephspec: metadataPool: failureDomain: host replicated: size: 3 dataPool: failureDomain: host erasureCoded: dataChunks: 2 codingChunks: 1 preservePoolsOnDelete: true gateway: port: 888 # 暴露端口 hostNetwork: true # 主机网络 instances: 1 # 节点数 annotations: placement: # 亲和性 nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: role operator: In values: - rgw-node # tolerations: # - key: rgw-node # operator: Exists # podAffinity: # podAntiAffinity: # topologySpreadConstraints: resources: limits: cpu: "500m" memory: "1024Mi" requests: cpu: "500m" memory: "1024Mi" zone: name: zone-cc3.3 账户
apiVersion: ceph.rook.io/v1kind: CephObjectStoreUsermetadata: name: cc-user # 用户名称 namespace: rook-cephspec: store: ccs3-store # 与对象库 CRD 的名称匹配 displayName: cc-display-name # 显示名称 quotas: maxBuckets: 100 # 最大存储桶限制 maxSize: 10G # 大小 maxObjects: 10000 # 桶中的最大对象数 capabilities: user: "*" bucket: "*"3.4 查看
# kubectl get CephObjectZone -ANAMESPACE NAME PHASErook-ceph zone-cc Ready# kubectl get CephObjectStore -ANAMESPACE NAME PHASErook-ceph ccs3-store Connected# kubectl get cephobjectstoreuser -ANAMESPACE NAME PHASErook-ceph cc-user Ready# kubectl -n rook-ceph get secret |grep ccs3-store-cc-user# 如果没有说明上面账户有问题rook-ceph-object-user-ccs3-store-cc-user kubernetes.io/rook 3 4m55s# 上部查到的结果# AccessKeykubectl -n rook-ceph get secret rook-ceph-object-user-ccs3-store-cc-user -o jsonpath='{.data.AccessKey}' | base64 --decode# SecretKeykubectl -n rook-ceph get secret rook-ceph-object-user-ccs3-store-cc-user -o jsonpath='{.data.SecretKey}' | base64 --decode3.5 外部集群使用
CSI 部署参考:
apiVersion: v1kind: Secretmetadata: namespace: minio name: csi-s3-secretstringData: accessKeyID: "CXJ2R8NNGQE6A2Y9BQXB" secretAccessKey: "oPcVD6XOVtBmhy6WxeAEZAwlRdt44Pv1C7YpyBDL" endpoint: http://10.1.1.1:888 # 因为用的主机网络,节点加端口就行3.5.1 查看
kubectl get pvcNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEcsi-s3-pvc Bound pvc-e2c83416-0c15-4a6f-88ea-8352f4ab77fc 5Gi RWO csi-s3 4m1s服务端已经有以 pv 名字的 bucket,也就是说这个账户只能创建 100 个 pvc
3.6 手动创建测试
3.6.1 创建 backup
apiVersion: storage.k8s.io/v1kind: StorageClassmetadata: name: rook-ceph-bucketprovisioner: rook-ceph.ceph.rook.io/bucketreclaimPolicy: Deleteparameters: objectStoreName: ccs3-store # 与对象库 CRD 的名称匹配 objectStoreNamespace: rook-ceph---apiVersion: objectbucket.io/v1alpha1kind: ObjectBucketClaimmetadata: name: ceph-bucketspec: generateBucketName: ceph-bkt storageClassName: rook-ceph-bucket3.6.2 查看
-o yaml 可以查看状态,如果 configmap 没有自动创建一般是 Pending 了
# kubectl get ObjectBucketClaimNAME AGEcc-bucket 48s
# bucket 名字kubectl -n default get cm cc-bucket -o jsonpath='{.data.BUCKET_NAME}'# AccessKeykubectl -n default get secret cc-bucket -o jsonpath='{.data.AWS_ACCESS_KEY_ID}' | base64 --decode# SecretKeykubectl -n default get secret cc-bucket -o jsonpath='{.data.SECRET_ACCESS_KEY}' | base64 --decode3.6.3 访问测试

4 NFS
注意节点标签
4.1 创建 pool
apiVersion: ceph.rook.io/v1kind: CephNFSmetadata: name: cc-nfs namespace: rook-cephspec: server: active: 1 # 多个节点并不高可用 placement: # 亲和性 nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: role operator: In values: - nfs-node topologySpreadConstraints: tolerations: - key: nfs-node operator: Exists podAffinity: podAntiAffinity: annotations: cc-annotation: something labels: cc-label: something resources: limits: cpu: "2" memory: "4Gi" requests: cpu: "2" memory: "4Gi" priorityClassName: "" logLevel: NIV_INFO # 日志级别---apiVersion: ceph.rook.io/v1kind: CephBlockPoolmetadata: name: cc-nfs namespace: rook-ceph # namespace:clusterspec: name: .nfs failureDomain: osd replicated: size: 1 requireSafeReplicaSize: false4.2 对外暴露
apiVersion: v1kind: Servicemetadata: name: rook-ceph-nfs-my-nfs-load-balancer namespace: rook-cephspec: ports: - name: nfs port: 2049 externalIPs: - 10.1.1.2 # 节点ip type: ClusterIP selector: app: rook-ceph-nfs ceph_nfs: cc-nfs instance: a4.3 启用 Ceph 协调程序
ceph mgr module enable rookceph mgr module enable nfsceph orch set backend rook4.4 手动创建目录
# ceph nfs export create cephfs cc-nfs /test ccfs{ "bind": "/test", "fs": "ccfs", "path": "/", "cluster": "cc-nfs", "mode": "RW"}# ceph nfs export ls cc-nfs[ "/test"]4.4.1 关闭 Ceph 协调程序
ceph orch set backend ""ceph mgr module disable rook4.5 查看
仅支持通过 TCP 的 V4 版本 NFS 协议
ceph nfs export info cc-nfs /test{ "export_id": 1, "path": "/", "cluster_id": "cc-nfs", "pseudo": "/test", "access_type": "RW", "squash": "none", "security_label": true, "protocols": [ 4 ], "transports": [ "TCP" ], "fsal": { "name": "CEPH", "user_id": "nfs.cc-nfs.1", "fs_name": "ccfs" }, "clients": []}4.6 外部集群使用
CSI 部署参考:
...... spec: serviceAccountName: nfs-client-provisioner containers: - name: nfs-client-provisioner image: willdockerhub/nfs-subdir-external-provisioner:v4.0.2 volumeMounts: - name: nfs-client-root mountPath: /persistentvolumes env: - name: PROVISIONER_NAME value: k8s-sigs.io/nfs-subdir-external-provisioner - name: NFS_SERVER value: 10.1.148.142 # 刚才对外暴露地址 - name: NFS_PATH value: /test volumes: - name: nfs-client-root nfs: server: 10.1.148.142 # 刚才对外暴露地址 path: /test # 刚才创建的路径4.6.1 查看
4.6.1.1 pvc
kubectl get pvc nfs-pvcNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEnfs-pvc Bound pvc-1d2b8446-974e-4fff-9e85-387fecd7c564 1Mi RWX nfs-client 5s4.6.1.2 服务端
# cd /tmp/test2/# lltotal 1drwxrwxrwx 2 nobody nobody 0 Sep 6 13:22 default-nfs-pvc-pvc-1d2b8446-974e-4fff-9e85-387fecd7c564drwxr-xr-x 4 nobody nobody 158 Sep 5 14:36 volumes4.7 手动挂载测试
# mount -t nfs 10.1.148.142:/test /tmp/test/# df -h |grep 14210.1.148.142:/test 190G 0 190G 0% /tmp/test三, 总结
此文章简单演示了通过 rook 部署 ceph 集群与管理
并且如何使用块存储,文件存储,对象存储,NFS
以及外部集群使用此集群存储
1 整体查看下 pod 挂载
# kubectl get podNAME READY STATUS RESTARTS AGEcephfs-pod 1/1 Running 0 22hnfs-pod 1/1 Running 0 3m6srbd-pod 1/1 Running 0 23hs3-pod 1/1 Running 0 12m文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
相关文章 智能推荐
1
RookCeph管理
🐳云原生 如何管理运行在k8s里的ceph
2
Kubespray 国内安装k8s集群
🐳云原生 最可靠的k8s安装工具
3
如何安全的备份Kubernetes
🐳云原生 如何安全的备份Kubernetes
4
k8s收集审计日志
🐳云原生 k8s收集审计日志
5
Kubernetes命令总结
🐳云原生 在使用Kubernetes中,命令使用到的总结
随机文章 随机推荐
