K8s——kubernetes集群中ceph集群使用【上】
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集群使用【上】相关推荐
- K8s——kubernetes集群中ceph集群使用【下】
kubernetes集群中ceph集群使用 一:CephFS 创建和使用 CephFS 允许用户挂载一个兼容posix的共享目录到多个主机,该存储和NFS共享存储以及CIFS共享目录相似 1.file ...
- 17-kubernetes集群中ceph集群使用
<文章感谢 xingdian > 文章目录 kubernetes集群中ceph集群使用 一:CephFS 创建和使用 1.filesystem 配置 2.查看资源配置 3.创建相对应的st ...
- 16-kubernetes集群中ceph集群使用
<文章感谢 xingdian > 文章目录 kubernetes集群中ceph集群使用 一:块设备创建和使用 1.storageclass 配置 2.查看配置结果 3.kubernetes ...
- k8s——kubernetes使用rook部署ceph集群
kubernetes使用rook部署ceph集群 一:环境准备 1.安装时间服务器进行时间同步 所有的kubernetes的集群节点 [root@master ~]# yum -y install n ...
- K8S通过rook部署rook ceph集群、配置dashboard访问并创建pvc
Rook概述 Ceph简介 Ceph是一种高度可扩展的分布式存储解决方案,提供对象.文件和块存储.在每个存储节点上,将找到Ceph存储对象的文件系统和Ceph OSD(对象存储守护程序)进程.在Cep ...
- PowerShell实现“机器人定时在企业微信群中发送消息”功能(上)
本章实现 由于篇幅较多,会拆分为上.下两部分来写. 本章实现: 01.如何在企业微信中添加群机器人 02.简单用机器人发送一条消息(postman实现) 03.powershell打开 04.简单用机 ...
- HTML文件发到群里,怎么将文件分享到百度云群中?百度云群组分享文件的教程
百度云是百度旗下的一个云端存储服务,我们可以在百度云中存储照片.视频.BT文件(还可在线播放).当然也可以建立一个群组,将自己的小伙伴拉进这个群当中,将自己的文件分享给他们.那么,具体地我们该如何操作 ...
- 自动化运维之k8s——Kubernetes集群部署、pod、service微服务、kubernetes网络通信
目录 一.Kubernetes简介 1.Kubernetes简介 2.kubernetes设计架构 3.Kubernetes核心组件 4.kubernetes设计结构 二.Kubernetes部署 1 ...
- K8S集群rook部署ceph集群
前言: 之前自己用rook部署过几次ceph集群,每次部署或多或少都会遇到一些问题.有些网上还能找到解决方法,有的只能靠自己去解决,毕竟每个人部署遇到的问题不一定都相同.因为每次部署完自己也没做记录, ...
最新文章
- 深入探究 RocketMQ 事务机制的实现流程,为什么它能做到发送消息零丢失?
- 皮一皮:没有草原也敢买马?
- php: xampp安装对应的phalcon版本(3.2.2-php5.6):比如redis-php5.6, php_igbinary-5.6
- 邀请参加活动的邀请函_圣诞节点灯仪式活动邀请函制作
- .NET中的字符串你了解多少?
- linux图机界面机制
- 浙南联合训练赛20180414
- 分享一篇关于奇异值分解的文章[Eng]
- 回复邮件时如何不要邮件头_如何为阅读,点击和回复率达到100%的CEO设计一封冷邮件...
- 使用 Scrum开发太阳能汽车
- security中的@EnableGlobalMethodSecurity注解详解
- VMware、Ubuntu和apt
- eclipse目录发布到tomcat对应的目录
- JavaScript中一些常用的方法整理
- linux 压缩文件夹.gz,Linux 系统 压缩和解压 gz 格式文件
- 你真的打算凑合过完这一生吗(转)
- 计算机内部组成原理及内部子系统概述
- 学大伟业DAY2模拟赛
- 危险进程集粹(附说明)
- YY视频直播体验优化实践
热门文章
- 哈希表及哈希函数研究综述
- Altium中PCB导入二维码
- redis脑裂是什么意思?如何预防?如何处理?
- 手把手教你设置路由器端口映射
- 【爱码物联】“颜值经济”当道,你选的化妆品能溯源么?
- visio 新建个人模板
- 【渗透测试】密码暴力破解工具——九头蛇(hydra)使用详解及实战
- 马云对话马斯克(全文):要警惕AI?该移民火星?如何更长寿?马化腾反对产业割裂和技术脱钩...
- 服务器trunk协议是什么,TRUNK端口汇聚技术原理和作用介绍
- java 文件保存_java中怎么实现保存文件到本地