今天就跟大家聊聊有关kubernetes中ceph RBD如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
目前成都创新互联已为近1000家的企业提供了网站建设、域名、网页空间、网站改版维护、企业网站设计、龙亭网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
备注:大量的放置组(例如,每个OSD为100个)可导致更好的平衡。不能过多,推荐100个。
(OSD * 100) PG总数= ------------ 泳池大小
如:群集有9个 OSD,默认池大小为3。因此,PG为.
9 * 100 PG总数= ------------ = 300 3
创建一个名为kube的新池,其放置组数为100
ceph osd pool create kube 150
语法:
ceph osd pool create {pool-name} {pg-num} {pool-name} – 池的名称。它必须是唯一的。 {pg-num} –池的放置组总数。
查看创建结果
ceph osd lspools 1 device_health_metrics 2 kube
略
ceph osd pool application enable kube rbd
补充:
--- Ceph Filesystem --- $ sudo ceph osd pool application enablecephfs --- Ceph Block Device --- $ sudo ceph osd pool application enable rbd --- Ceph Object Gateway --- $ sudo ceph osd pool application enable rgw
rbd pool init kube
补充:
//要禁用应用程序,请使用: ceph osd pool application disable{--yes-i-really-mean-it} //获取特定池或全部池的I / O信息 ceph osd pool stats [{pool-name}] //删除池,请执行: ceph osd pool delete {pool-name} [{pool-name} --yes-i-really-really-mean-it]
cat >external-storage-rbd-provisioner.yaml<2.2 应用文件以创建资源
kubectl apply -f external-storage-rbd-provisioner.yaml serviceaccount/rbd-provisioner created clusterrole.rbac.authorization.k8s.io/rbd-provisioner created clusterrolebinding.rbac.authorization.k8s.io/rbd-provisioner created role.rbac.authorization.k8s.io/rbd-provisioner created rolebinding.rbac.authorization.k8s.io/rbd-provisioner created deployment.apps/rbd-provisioner created2.3 确认RBD卷 pod正在运行
备注:取决于拉取镜像的速度
kubectl get pods -l app=rbd-provisioner -n kube-system NAME READY STATUS RESTARTS AGE rbd-provisioner-8ddb7f6c7-zssl5 1/1 Running 0 18s3.创建配置storageclass的Secret
3.1 创建k8s访问ceph的用户 在ceph的mon或者admin节点
ceph auth get-or-create client.kube mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=kube' -o ceph.client.kube.keyring3.2 查看key(在ceph的mon或者admin节点)
获取
admin
用户的key
(ceph
的admin
用户,非kubernetes
的用户)ceph auth get-key client.admin AQAXcD9f2B24GhAA/RJvMLvnpO0zAb+XYQ2YuQ==获取
kube
用户的key
ceph auth get-key client.kube AQC8fz9fNLGyIBAAyOu9bGSx7zA2S3b4Ve4vNQ==3.3 密钥添加为Kubernetes中的secret
3.3.1 创建 admin secret
kubectl create secret generic ceph-secret --type="kubernetes.io/rbd" \ --from-literal=key=AQAXcD9f2B24GhAA/RJvMLvnpO0zAb+XYQ2YuQ== \ --namespace=kube-system3.3.2 在 default 命名空间创建pvc用于访问ceph的 secret
kubectl create secret generic ceph-user-secret --type="kubernetes.io/rbd" \ --from-literal=key=AQC8fz9fNLGyIBAAyOu9bGSx7zA2S3b4Ve4vNQ== \ --namespace=default3.3.3 查看创建结果
kubectl get secrets ceph-admin-secret -n kube-system NAME TYPE DATA AGE ceph-admin-secret kubernetes.io/rbd 1 22h4. 配置StorageClass
4.1 创建资源文件
cat >storageclass-ceph-rdb.yaml<4.2 创建yaml
kubectl apply -f storageclass-ceph-rdb.yaml
备注
kube-ceph-rdb 是要创建的StorageClass的名称
Ceph Monitors 的地址可以通过
ceph -s
列出4.3 查看sc生效结果
kubectl get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE dynamic-ceph-rdb ceph.com/rbd Delete Immediate false 5m8s6.测试使用 storageclass
6.1 创建测试PVC
cat >ceph-rdb-pvc-test.yaml<6.2 查看PVC&PV
kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE ceph-rdb-claim Bound pvc-9eee5a95-7842-4356-af3d-562255a0d7ee 2Gi RWO kube-ceph-rdb 33s kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pvc-9eee5a95-7842-4356-af3d-562255a0d7ee 2Gi RWO Delete Bound default/ceph-rdb-claim kube-ceph-rdb 38s6.3 创建 nginx pod 挂载测试
cat >nginx-pod.yaml<6.4 查看部署结果
kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx-pod1 1/1 Running 0 39s 10.20.235.135 k8s036.5 访问测试
6.5.1 创建访问内容
kubectl exec -ti nginx-pod1 -- /bin/sh -c 'echo This is from Ceph RBD!!! > /usr/share/nginx/html/index.html'6.5.2 curl访问测试
curl http://10.20.235.135 This is from Ceph RBD!!!6.6 清理测试的PVC
kubectl delete -f nginx-pod.yaml kubectl delete -f ceph-rdb-pvc-test.yaml看完上述内容,你们对kubernetes中ceph RBD如何使用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。
当前标题:kubernetes中cephRBD如何使用
本文链接:http://cdkjz.cn/article/joeopg.html