rook使用教程,快速编排ceph
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,kubernetes集群三步安装安装git clone https://github.com/rook/rookcd cluster/examples/kubernetes/cephkubectl c
千家信息网最后更新 2025年12月03日rook使用教程,快速编排ceph
kubernetes集群三步安装
安装
git clone https://github.com/rook/rookcd cluster/examples/kubernetes/cephkubectl create -f operator.yaml 查看operator是否成功:
[root@dev-86-201 ~]# kubectl get pod -n rook-ceph-systemNAME READY STATUS RESTARTS AGErook-ceph-agent-5z6p7 1/1 Running 0 88mrook-ceph-agent-6rj7l 1/1 Running 0 88mrook-ceph-agent-8qfpj 1/1 Running 0 88mrook-ceph-agent-xbhzh 1/1 Running 0 88mrook-ceph-operator-67f4b8f67d-tsnf2 1/1 Running 0 88mrook-discover-5wghx 1/1 Running 0 88mrook-discover-lhwvf 1/1 Running 0 88mrook-discover-nl5m2 1/1 Running 0 88mrook-discover-qmbx7 1/1 Running 0 88m然后创建ceph集群:
kubectl create -f cluster.yaml查看ceph集群:
[root@dev-86-201 ~]# kubectl get pod -n rook-cephNAME READY STATUS RESTARTS AGErook-ceph-mgr-a-8649f78d9b-jklbv 1/1 Running 0 64mrook-ceph-mon-a-5d7fcfb6ff-2wq9l 1/1 Running 0 81mrook-ceph-mon-b-7cfcd567d8-lkqff 1/1 Running 0 80mrook-ceph-mon-d-65cd79df44-66rgz 1/1 Running 0 79mrook-ceph-osd-0-56bd7545bd-5k9xk 1/1 Running 0 63mrook-ceph-osd-1-77f56cd549-7rm4l 1/1 Running 0 63mrook-ceph-osd-2-6cf58ddb6f-wkwp6 1/1 Running 0 63mrook-ceph-osd-3-6f8b78c647-8xjzv 1/1 Running 0 63m参数说明:
apiVersion: ceph.rook.io/v1kind: CephClustermetadata: name: rook-ceph namespace: rook-cephspec: cephVersion: # For the latest ceph images, see https://hub.docker.com/r/ceph/ceph/tags image: ceph/ceph:v13.2.2-20181023 dataDirHostPath: /var/lib/rook # 数据盘目录 mon: count: 3 allowMultiplePerNode: true dashboard: enabled: true storage: useAllNodes: true useAllDevices: false config: databaseSizeMB: "1024" journalSizeMB: "1024"访问ceph dashboard:
[root@dev-86-201 ~]# kubectl get svc -n rook-cephNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGErook-ceph-mgr ClusterIP 10.98.183.33 9283/TCP 66mrook-ceph-mgr-dashboard NodePort 10.103.84.48 8443:31631/TCP 66m # 把这个改成NodePort模式rook-ceph-mon-a ClusterIP 10.99.71.227 6790/TCP 83mrook-ceph-mon-b ClusterIP 10.110.245.119 6790/TCP 82mrook-ceph-mon-d ClusterIP 10.101.79.159 6790/TCP 81m 然后访问https://10.1.86.201:31631 即可
管理账户admin,获取登录密码:
kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o yaml | grep "password:" | awk '{print $2}' | base64 --decode使用
创建pool
apiVersion: ceph.rook.io/v1kind: CephBlockPoolmetadata: name: replicapool # operator会监听并创建一个pool,执行完后界面上也能看到对应的pool namespace: rook-cephspec: failureDomain: host replicated: size: 3---apiVersion: storage.k8s.io/v1kind: StorageClassmetadata: name: rook-ceph-block # 这里创建一个storage class, 在pvc中指定这个storage class即可实现动态创建PVprovisioner: ceph.rook.io/blockparameters: blockPool: replicapool # The value of "clusterNamespace" MUST be the same as the one in which your rook cluster exist clusterNamespace: rook-ceph # Specify the filesystem type of the volume. If not specified, it will use `ext4`. fstype: xfs# Optional, default reclaimPolicy is "Delete". Other options are: "Retain", "Recycle" as documented in https://kubernetes.io/docs/concepts/storage/storage-classes/reclaimPolicy: Retain创建pvc
在cluster/examples/kubernetes 目录下,官方给了个worldpress的例子,可以直接运行一下:
kubectl create -f mysql.yamlkubectl create -f wordpress.yaml查看PV PVC:
[root@dev-86-201 ~]# kubectl get pvcNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEmysql-pv-claim Bound pvc-a910f8c2-1ee9-11e9-84fc-becbfc415cde 20Gi RWO rook-ceph-block 144mwp-pv-claim Bound pvc-af2dfbd4-1ee9-11e9-84fc-becbfc415cde 20Gi RWO rook-ceph-block 144m[root@dev-86-201 ~]# kubectl get pvNAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGEpvc-a910f8c2-1ee9-11e9-84fc-becbfc415cde 20Gi RWO Retain Bound default/mysql-pv-claim rook-ceph-block 145mpvc-af2dfbd4-1ee9-11e9-84fc-becbfc415cde 20Gi RWO Retain Bound default/wp-pv-claim rook-ceph-block 145m看下yaml文件:
apiVersion: v1kind: PersistentVolumeClaimmetadata: name: mysql-pv-claim labels: app: wordpressspec: storageClassName: rook-ceph-block # 指定storage class accessModes: - ReadWriteOnce resources: requests: storage: 20Gi # 需要一个20G的盘... volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim # 指定上面定义的PVC是不是非常简单。
要访问wordpress的话请把service改成NodePort类型,官方给的是loadbalance类型:
kubectl edit svc wordpress[root@dev-86-201 kubernetes]# kubectl get svcNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEwordpress NodePort 10.109.30.99 80:30130/TCP 148m 总结
分布式存储在容器集群中充当非常重要的角色,使用容器集群一个非常重要的理念就是把集群当成一个整体使用,如果你在使用中还关心单个主机,比如调度到某个节点,
挂载某个节点目录等,必然会导致不能把云的威力百分之百发挥出来。 一旦计算存储分离后,就可真正实现随意漂移,对集群维护来说是个极大的福音。
比如集群机器过保了需要下架,那么我们云化的架构因为所有东西无单点,所以只需要简单驱逐改节点,然后下架即可,不用关心上面跑的是什么业务,不管是有状态还是无
状态的都可以自动修复。 不过目前面临最大的挑战可能还是分布式存储的性能问题。 在性能要求不苛刻的场景下我是极推荐这种计算存储分离架构的。
探讨可加QQ群:98488045
公众号:
微信群:
集群
存储
目录
节点
重要
分布式
官方
容器
性能
架构
状态
类型
还是
最大
苛刻
成功
不用
业务
东西
中指
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
泰州应用软件开发的价钱
数据库扩展名类型
合肥数据中心服务器
服务器安装驱动下载失败
服务器ftp架设
科技互联网宣传片脚本范文
天津华宁支架服务器电源箱
香港服务器按月付费
如何调取腾讯数据库
宁波 对日软件开发
核心网软件开发工程师猎聘
开发网站服务器
全华网络技术河南有限公司
怎么创建新的数据库表格
紫光股份网络安全市场规模
互联网科技和互联网技术区别
自驾友网络技术有限公司
关于儿童网络安全的简笔画
北界无限网络技术有限公司
怎么总是不能切底把数据库学透
SQL更新数据导致数据库变大
商汤科技浪潮信息服务器
日活5000 服务器
远程连接服务器上传文件到服务
通过防火墙 网络安全管理
石家庄企业软件开发服务商
余姚机械刀片服务器不二之选
万方数据库和paper
天津服务器虚拟化定做云主机
服务器内存100%怎么排查