千家信息网

kubernetes中ceph RBD如何使用

发表于:2024-10-10 作者:千家信息网编辑
千家信息网最后更新 2024年10月10日,今天就跟大家聊聊有关kubernetes中ceph RBD如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.在Ceph存储集群中创建池
千家信息网最后更新 2024年10月10日kubernetes中ceph RBD如何使用

今天就跟大家聊聊有关kubernetes中ceph RBD如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1.在Ceph存储集群中创建池

1.1 规划池

  • 备注:大量的放置组(例如,每个OSD为100个)可导致更好的平衡。不能过多,推荐100个。

       (OSD * 100)PG总数= ------------          泳池大小

如:群集有9个 OSD,默认池大小为3。因此,PG为.

          9 * 100PG总数= ------------ = 300             3

1.2 创建pool

1.2.1 使用命令创建

创建一个名为kube的新池,其放置组数为100

ceph osd pool create  kube 150

语法:

ceph osd pool create {pool-name} {pg-num}        {pool-name} - 池的名称。它必须是唯一的。        {pg-num} -池的放置组总数。

查看创建结果

ceph osd lspools1 device_health_metrics2 kube
1.2.2 使用web创建

1.3 关联pool到应用

ceph osd pool application enable kube rbd

补充:

--- Ceph Filesystem ---$ sudo ceph osd pool application enable  cephfs--- Ceph Block Device ---$ sudo ceph osd pool application enable  rbd--- Ceph Object Gateway --- $ sudo ceph osd pool application enable  rgw

1.4 适用于RBD的pool 需要初始化

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]

2.在Kubernetes上部署Ceph Provisioner

2.1 创建资源文件

cat >external-storage-rbd-provisioner.yaml<

2.2 应用文件以创建资源

kubectl apply -f external-storage-rbd-provisioner.yamlserviceaccount/rbd-provisioner createdclusterrole.rbac.authorization.k8s.io/rbd-provisioner createdclusterrolebinding.rbac.authorization.k8s.io/rbd-provisioner createdrole.rbac.authorization.k8s.io/rbd-provisioner createdrolebinding.rbac.authorization.k8s.io/rbd-provisioner createddeployment.apps/rbd-provisioner created

2.3 确认RBD卷 pod正在运行

  • 备注:取决于拉取镜像的速度

kubectl get pods -l app=rbd-provisioner -n kube-systemNAME                              READY   STATUS    RESTARTS   AGErbd-provisioner-8ddb7f6c7-zssl5   1/1     Running   0          18s

3.创建配置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.keyring

3.2 查看key(在ceph的mon或者admin节点)

获取 admin 用户的 keycephadmin 用户,非 kubernetes 的用户)

ceph auth get-key client.adminAQAXcD9f2B24GhAA/RJvMLvnpO0zAb+XYQ2YuQ==

获取 kube 用户的 key

ceph auth get-key client.kubeAQC8fz9fNLGyIBAAyOu9bGSx7zA2S3b4Ve4vNQ==

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-system
3.3.2 在 default 命名空间创建pvc用于访问ceph的 secret
kubectl create secret generic ceph-user-secret --type="kubernetes.io/rbd" \--from-literal=key=AQC8fz9fNLGyIBAAyOu9bGSx7zA2S3b4Ve4vNQ== \--namespace=default

3.3.3 查看创建结果

kubectl get secrets ceph-admin-secret -n kube-system NAME                TYPE                DATA   AGEceph-admin-secret   kubernetes.io/rbd   1      22h

4. 配置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 scNAME               PROVISIONER    RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGEdynamic-ceph-rdb   ceph.com/rbd   Delete          Immediate           false                  5m8s

6.测试使用 storageclass

6.1 创建测试PVC

cat >ceph-rdb-pvc-test.yaml<

6.2 查看PVC&PV

kubectl get pvcNAME             STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS    AGEceph-rdb-claim   Bound    pvc-9eee5a95-7842-4356-af3d-562255a0d7ee   2Gi        RWO            kube-ceph-rdb   33skubectl get pvNAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                    STORAGECLASS    REASON   AGEpvc-9eee5a95-7842-4356-af3d-562255a0d7ee   2Gi        RWO            Delete           Bound    default/ceph-rdb-claim   kube-ceph-rdb            38s

6.3 创建 nginx pod 挂载测试

cat >nginx-pod.yaml<

6.4 查看部署结果

kubectl get pods -o wideNAME         READY   STATUS    RESTARTS   AGE   IP              NODE    NOMINATED NODE   READINESS GATESnginx-pod1   1/1     Running   0          39s   10.20.235.135   k8s03              

6.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.135This is from Ceph RBD!!!

6.6 清理测试的PVC

kubectl delete -f nginx-pod.yamlkubectl delete -f ceph-rdb-pvc-test.yaml

看完上述内容,你们对kubernetes中ceph RBD如何使用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

测试 用户 内容 结果 备注 总数 文件 资源 应用 名称 大小 节点 配置 信息 取决于 可以通过 命令 地址 密钥 应用程序 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发费属于什么税种 pc管理机和服务器 如何查看服务器ssl日志 查看数据库节点命令 章丘移动城管软件开发公司 网站后台数据库安全 中原网络安全研究院好考吗 关于数据库主键的说法正确的是 郧阳区正规软件开发不二之选 违反网络安全法罚款好多倍 方城网络安全检查报告 饥荒自己建的服务器掉帧 网络安全法 知多少 服务器安全怎么处理办法 江西天使杯网络安全大赛 对网络安全问题的看法认知 撰写宣传网络安全法 江苏易捷网络技术有限公司 数据库需要分表吗 象征网络安全的花 网络安全主题团课心得体会 数据库中组合框和列表框 网易云云盘上传失败服务器错误 软件开发人员对未来的规划 软件开发南京工资 温州国企招聘 网络安全 防治校园欺凌 维护网络安全 苏州节能刀片服务器 长沙县网络安全知识竞赛 炉石传说一直无法连接服务器
0