kubernetes集群中ceph集群使用

块设备创建和使用

Ceph 能够为 pod 提供裸的块设备卷,定义在Ceph数据冗余级别的一个池中

1.storageclass 配置

  • storageclass.yaml

该配置文件为生产场景提供了3个副本,至少需要3个节点
数据会间歇性的在3个不同的k8s节点上复制,单节点故障不会造成数据的丢失或不可用

  • storageclass-ec.yaml

以纠错码来替代镜像达到数据持久性的功能,需要至少3个节点
Ceph 的纠错码比镜像的效率更高,所以能够提供高可用性而无需3份镜像的代价
但会造成节点较高的编码解码计算,也就是会提高节点的cpu资源消耗

  • storageclass-test.yaml:

测试场景,只需要单个节点,只有一份镜像,有数据丢失的风险
使用 csi/rbd 目录下的配置文间,csi是推荐的驱动,flex驱动不推荐使用

[root@master ~]# cd /tmp/rook/cluster/examples/kubernetes/ceph/csi/rbd/
[root@master rbd]# sed -i 's/failureDomain: host/failureDomain: osd/g' storageclass.yaml
[root@master rbd]# vim storageclass.yaml
[root@master rbd]# kubectl apply -f storageclass.yaml
cephblockpool.ceph.rook.io/replicapool created
storageclass.storage.k8s.io/rook-ceph-block created
[root@master rbd]# kubectl get sc -n rook-ceph

2.查看配置结果

[root@master rbd]# kubectl -n rook-ceph get pod -l "app=rook-ceph-tools"
NAME   READY   STATUS    RESTARTS   AGE
rook-ceph-tools-7476c966b7-5f5kg   1/1  Running 0    46h
[root@master rbd]# NAME=$(kubectl -n rook-ceph get pod -l "app=rook-ceph-tools" -o jsonpath='{.items[0].metadata.name}')
[root@master rbd]# kubectl -n rook-ceph exec -it ${NAME} ceph status
[root@master rbd]# kubectl -n rook-ceph exec -it ${NAME} ceph osd status
[root@master rbd]# kubectl -n rook-ceph exec -it ${NAME} ceph osd df

3.kubernetes Dashboard 查看结果

4.创建 Wordpress 进行测试

[root@master rbd]# cd /tmp/rook/cluster/examples/kubernetes
[root@master kubernetes]# sed -i 's|mysql:5.6|registry.cn-hangzhou.aliyuncs.com/vinc-auto/mysql:5.6|g' mysql.yaml
[root@master kubernetes]# sed -i 's|wordpress:4.6.1-apache|registry.cn-hangzhou.aliyuncs.com/vinc-auto/wordpress:4.6.1-apache|g' wordpress.yaml
[root@master kubernetes]# sed -i 's/LoadBalancer/NodePort/g' wordpress.yaml
[root@master kubernetes]# kubectl apply -f mysql.yaml
service/wordpress-mysql created
persistentvolumeclaim/mysql-pv-claim created
deployment.apps/wordpress-mysql created
[root@master kubernetes]# kubectl apply -f wordpress.yaml
service/wordpress created
persistentvolumeclaim/wp-pv-claim created
deployment.apps/wordpress created

1.查看创建的资源

[root@master kubernetes]# kubectl get pvc -o wide
NAME             STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      AGE   VOLUMEMODE
mysql-pv-claim   Bound    pvc-8a58a8cc-2620-47ba-8182-58e7b0ef998e   20Gi       RWO            rook-ceph-block   12m   Filesystem
wp-pv-claim      Bound    pvc-50626a36-64f3-4fb8-a83f-e4dff26be1f4   20Gi       RWO            rook-ceph-block   12m   Filesystem
[root@master kubernetes]#  kubectl get deploy -o wide
NAME              READY   UP-TO-DATE   AVAILABLE   AGE     CONTAINERS   IMAGES                                                               SELECTOR
wordpress         1/1     1            1           2m24s   wordpress    registry.cn-hangzhou.aliyuncs.com/vinc-auto/wordpress:4.6.1-apache   app=wordpress,tier=frontend
wordpress-mysql   1/1     1            1           2m43s   mysql        registry.cn-hangzhou.aliyuncs.com/vinc-auto/mysql:5.6                app=wordpress,tier=mysql
[root@master kubernetes]#  kubectl get pod -o wide
NAME                              READY   STATUS    RESTARTS   AGE     IP            NODE     NOMINATED NODE   READINESS GATES
nginx-xingdian                    1/1     Running   1          2d9h    10.244.2.3    node-2   <none>           <none>
nginx-xingdian-2                  1/1     Running   0          2d8h    10.244.1.2    node-1   <none>           <none>
wordpress-5587564997-lgp2w        1/1     Running   0          113s    10.244.2.26   node-2   <none>           <none>
wordpress-mysql-55456f44b-kgnj6   1/1     Running   0          2m13s   10.244.2.25   node-2   <none>           <none>

2.浏览器访问 wordpress 进行部署

3.查看Ceph集群中的相关数据

[root@master ~]# kubectl -n rook-ceph get pod -l "app=rook-ceph-tools"
NAME        READY   STATUS    RESTARTS   AGE
rook-ceph-tools-7476c966b7-5f5kg   1/1     Running   0    47h
[root@master ~]# NAME=$(kubectl -n rook-ceph get pod -l "app=rook-ceph-tools" -o jsonpath='{.items[0].metadata.name}')
[root@master ~]# kubectl -n rook-ceph exec -it ${NAME} sh
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
sh-4.2# ceph osd pool stats
pool replicapool id 1client io 3.7 KiB/s rd, 195 KiB/s wr, 2 op/s rd, 2 op/s wr
sh-4.2# rbd ls -p replicapool
csi-vol-0377015d-4624-11eb-80eb-12916ae40d83
csi-vol-864d78df-4628-11eb-80eb-12916ae40d83
csi-vol-904c6c28-4628-11eb-80eb-12916ae40d83
sh-4.2# rbd info replicapool/'csi-vol-0377015d-4624-11eb-80eb-12916ae40d83'
rbd image 'csi-vol-0377015d-4624-11eb-80eb-12916ae40d83':size 20 GiB in 5120 objectsorder 22 (4 MiB objects)snapshot_count: 0id: 8a347eb76d55block_name_prefix: rbd_data.8a347eb76d55format: 2features: layeringop_features: flags: create_timestamp: Tue Dec 22 11:20:30 2020access_timestamp: Tue Dec 22 11:20:30 2020modify_timestamp: Tue Dec 22 11:20:30 2020

4.删除测试环境

[root@k8s-master kubernetes]# cd /tmp/rook/cluster/examples/kubernetes
[root@k8s-master kubernetes]# kubectl delete -f wordpress.yaml
[root@k8s-master kubernetes]# kubectl delete -f mysql.yaml
[root@k8s-master kubernetes]# kubectl delete -n rook-ceph cephblockpools.ceph.rook.io replicapool
[root@k8s-master kubernetes]# kubectl delete storageclass rook-ceph-block

K8s——kubernetes集群中ceph集群使用【上】相关推荐

  1. K8s——kubernetes集群中ceph集群使用【下】

    kubernetes集群中ceph集群使用 一:CephFS 创建和使用 CephFS 允许用户挂载一个兼容posix的共享目录到多个主机,该存储和NFS共享存储以及CIFS共享目录相似 1.file ...

  2. 17-kubernetes集群中ceph集群使用

    <文章感谢 xingdian > 文章目录 kubernetes集群中ceph集群使用 一:CephFS 创建和使用 1.filesystem 配置 2.查看资源配置 3.创建相对应的st ...

  3. 16-kubernetes集群中ceph集群使用

    <文章感谢 xingdian > 文章目录 kubernetes集群中ceph集群使用 一:块设备创建和使用 1.storageclass 配置 2.查看配置结果 3.kubernetes ...

  4. k8s——kubernetes使用rook部署ceph集群

    kubernetes使用rook部署ceph集群 一:环境准备 1.安装时间服务器进行时间同步 所有的kubernetes的集群节点 [root@master ~]# yum -y install n ...

  5. K8S通过rook部署rook ceph集群、配置dashboard访问并创建pvc

    Rook概述 Ceph简介 Ceph是一种高度可扩展的分布式存储解决方案,提供对象.文件和块存储.在每个存储节点上,将找到Ceph存储对象的文件系统和Ceph OSD(对象存储守护程序)进程.在Cep ...

  6. PowerShell实现“机器人定时在企业微信群中发送消息”功能(上)

    本章实现 由于篇幅较多,会拆分为上.下两部分来写. 本章实现: 01.如何在企业微信中添加群机器人 02.简单用机器人发送一条消息(postman实现) 03.powershell打开 04.简单用机 ...

  7. HTML文件发到群里,怎么将文件分享到百度云群中?百度云群组分享文件的教程

    百度云是百度旗下的一个云端存储服务,我们可以在百度云中存储照片.视频.BT文件(还可在线播放).当然也可以建立一个群组,将自己的小伙伴拉进这个群当中,将自己的文件分享给他们.那么,具体地我们该如何操作 ...

  8. 自动化运维之k8s——Kubernetes集群部署、pod、service微服务、kubernetes网络通信

    目录 一.Kubernetes简介 1.Kubernetes简介 2.kubernetes设计架构 3.Kubernetes核心组件 4.kubernetes设计结构 二.Kubernetes部署 1 ...

  9. K8S集群rook部署ceph集群

    前言: 之前自己用rook部署过几次ceph集群,每次部署或多或少都会遇到一些问题.有些网上还能找到解决方法,有的只能靠自己去解决,毕竟每个人部署遇到的问题不一定都相同.因为每次部署完自己也没做记录, ...

最新文章

  1. 深入探究 RocketMQ 事务机制的实现流程,为什么它能做到发送消息零丢失?
  2. 皮一皮:没有草原也敢买马?
  3. php: xampp安装对应的phalcon版本(3.2.2-php5.6):比如redis-php5.6, php_igbinary-5.6
  4. 邀请参加活动的邀请函_圣诞节点灯仪式活动邀请函制作
  5. .NET中的字符串你了解多少?
  6. linux图机界面机制
  7. 浙南联合训练赛20180414
  8. 分享一篇关于奇异值分解的文章[Eng]
  9. 回复邮件时如何不要邮件头_如何为阅读,点击和回复率达到100%的CEO设计一封冷邮件...
  10. 使用 Scrum开发太阳能汽车
  11. security中的@EnableGlobalMethodSecurity注解详解
  12. VMware、Ubuntu和apt
  13. eclipse目录发布到tomcat对应的目录
  14. JavaScript中一些常用的方法整理
  15. linux 压缩文件夹.gz,Linux 系统 压缩和解压 gz 格式文件
  16. 你真的打算凑合过完这一生吗(转)
  17. 计算机内部组成原理及内部子系统概述
  18. 学大伟业DAY2模拟赛
  19. 危险进程集粹(附说明)
  20. YY视频直播体验优化实践

热门文章

  1. 哈希表及哈希函数研究综述
  2. Altium中PCB导入二维码
  3. redis脑裂是什么意思?如何预防?如何处理?
  4. 手把手教你设置路由器端口映射
  5. 【爱码物联】“颜值经济”当道,你选的化妆品能溯源么?
  6. visio 新建个人模板
  7. 【渗透测试】密码暴力破解工具——九头蛇(hydra)使用详解及实战
  8. 马云对话马斯克(全文):要警惕AI?该移民火星?如何更长寿?马化腾反对产业割裂和技术脱钩...
  9. 服务器trunk协议是什么,TRUNK端口汇聚技术原理和作用介绍
  10. java 文件保存_java中怎么实现保存文件到本地