目录

  • 简要概述
  • 环境测试
  • 结果验证

简要概述

Kubernetes pod 结合Ceph rbd块设备的使用,让Docker 数据存储在Ceph,重启Docker或k8s RC重新 调 度pod 不会引起数据来回迁移。

工作原理无非就是拿到ceph集群的key作为认证,远程rbdmap映射挂载使用。那么就要启用一个基于key的secret资源,之后k8s pod指定要用的rbd就可以了。

环境测试

我的OS是ubuntu 14.04,一个master,两个minon 节点,一个镜像仓库服务,这样保证了k8s集群跑起来,这个过程就略过了。

1.内核升级

这里的ceph 版本装的是10.2.2,客户端内核过低会引起挂载失败,主要就是minion节点。

# curl -sSL https://get.docker.com | sh && service docker restart # apt-get install linux-image-4.4.0-22-generic && reboot

2.安装ceph-common,让minion调用rbd

root@minion2:~# apt-get install python-rbd ceph-common

3.保存ceph-keyring和配置文件

root@minion2:~# ll /etc/ceph
total 20 drwxr-xr-x 2 root root 4096 Jun 22 2016 ./
drwxr-xr-x 93 root root 4096 Nov 11 11:18 ../ -rw------- 1 root root 63 Apr 25 2016 ceph.client.admin.keyring
-rw-r--r-- 1 root root 249 Jun 22 2016 ceph.conf
-rw-r--r-- 1 root root 92 Jun 14 2016 rbdmap

4.获取ceph keyring 的base64编码字符串

root@minion2:~# ceph auth get-key client.admin AQAmnRlX2zrqDRAAOiuOs2sIItGhAP6tNDa3Vg==root@minion2:~# root@minion2:~# grep key /etc/ceph/ceph.client.admin.keyring |awk '{printf "%s", $NF}' AQAmnRlX2zrqDRAAOiuOs2sIItGhAP6tNDa3Vg==root@minion2:~# grep key /etc/ceph/ceph.client.admin.keyring |awk '{printf "%s", $NF}'|base64 QVFBbW5SbFgyenJxRFJBQU9pdU9zMnNJSXRHaEFQNnRORGEzVmc9PQ==

5.创建基于keyring 的secret资源

root@master:~# cat ceph-secret.yaml
apiVersion: v1
kind: Secret
metadata:name: ceph-secret
data:key: QVFBbW5SbFgyenJxRFJBQU9pdU9zMnNJSXRHaEFQNnRORGEzVmc9PQo=
root@master:~# kubectl create -f ceph-secret.yaml
root@master:~# kubectl get secret
NAME TYPE DATA AGE
ceph-secret Opaque 1 187d default-token-rk17v kubernetes.io/service-account-token 3 208d

6.编辑一个可用的ReplicationController 让rbdpod跑起来

# kubectl create -f rbd-rc.yaml

验证结果

这样的我们在pod就跑起来了,可以看到mount挂载信息,也可以进入容器查看

root@minion2:~# docker ps | grep rbd 4b8fc04501b1 nginx "nginx -g 'daemon off" 6 months ago Up 6 months k8s_rbdpod.b1ab9160_rbpod-k3yxn_default_88540575-3847-11e6-a098-0a6a7c3a684c_f8caa4bc3c9c1240b72e gcr.io/google_containers/pause:2.0 "/pause" 6 months ago Up 6 months k8s_POD.25c801ab_rbdpod-k3yxn_default_88540575-3847-11e6-a098-0a6a7c3a684c_c38f4ce7root@minion2:~# mount | grep rbd /dev/rbd0 on /var/lib/kubelet/plugins/kubernetes.io/rbd/rbd/data-image-wxq type ext4 (rw) /var/lib/kubelet/plugins/kubernetes.io/rbd/rbd/data-image-wxq on /var/lib/kubelet/pods/88540575-3847-11e6-a098-0a6a7c3a684c/volumes/kubernetes.io~rbd/rbdpd type none (rw)

这样k8s完美的结合了Ceph 块设备,它们又能愉悦的在一起玩耍了,至于有没有真感情且看未来。

本文转自中文社区-Kubernetes共享使用Ceph存储

Kubernetes共享使用Ceph存储相关推荐

  1. Kubernetes 集群基于 Rook 的 Ceph 存储之块设备、文件系统、对象存储

    文章目录 1.Rook & Ceph 介绍 2.环境.软件准备 3.Block 块存储 3.1.创建 CephBlockPool.StorageClass 3.2.验证并测试 4.File S ...

  2. 使用Ceph集群作为Kubernetes的动态分配持久化存储

    2019独角兽企业重金招聘Python工程师标准>>> 使用Docker快速部署Ceph集群 , 然后使用这个Ceph集群作为Kubernetes的动态分配持久化存储. Kubern ...

  3. 使用Rook+Ceph在Kubernetes上作持久存储

    使用Rook+Ceph在Kubernetes上作持久存储 作者:Earl C. Ruby III 我想在新的Kubernetes集群上安装Prometheus和Grafana,但为了使这些软件包能够工 ...

  4. openstack对接ceph存储

    前言 拥抱开源,无私分享,共享技术,相互学习,共同进步,分享更多有深度的文章,欢迎关注分享. ceph介绍 ceph是一种开源的分布式的存储系统,分布式存储的优点: 高可靠 既满足存储读取不丢失,还要 ...

  5. ceph存储原理_赠书 | Linux 开源存储全栈详解——从Ceph到容器存储

    // 留言点赞赠书我有书,你有故事么?留言说出你的存储故事留言点赞前两名,免费送此书截止日期12.27号12.30号公布名单 // 内容简介 本书致力于帮助读者形成有关Linux开源存储世界的细致的拓 ...

  6. kubernetes部署nfs持久存储(静态和动态)

    kubernetes部署nfs持久存储(静态和动态) NFS简介 NFS是网络文件系统Network File System的缩写,NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地的文 ...

  7. Ceph 存储集群5-数据归置

    一.数据归置概览 Ceph 通过 RADOS 集群动态地存储.复制和重新均衡数据对象.很多不同用户因不同目的把对象存储在不同的存储池里,而它们都坐落于无数的 OSD 之上,所以 Ceph 的运营需要些 ...

  8. ceph存储 pg归置组处于stuck以及degraded状态解决方案

    https://blog.csdn.net/skdkjzz/article/details/42486793 由于对ceph的兴趣,我们经常自己搭建ceph集群,可能是单节点,也可能是多节点,但是经常 ...

  9. 通过Charmed Ceph 在 H3C UniServer R4950 G5 服务器上 部署独立的Ubuntu Ceph 存储集群

    摘要 本文档提供了一个独立Ceph集群的构架参考,部署及各种访问方法.本测试在4台H3C UniServer R4950 G5服务器上构建了一个独立的可扩展.可靠和容错的Ceph存储集群.可以同时对外 ...

最新文章

  1. Windows 编译cython nms
  2. setTimeout和setInterval方法
  3. 【C#】ADO .Net Entities Framework在WPF TreeView中的应用
  4. 父类的析构函数定义为虚函数
  5. English debate for sports motion with notes from PM (feedback included)
  6. mysql统计各年龄段的数量
  7. 多项式对数函数|指数函数(多项式)
  8. MySql的用户权限
  9. 每日一题(33)——用两个栈实现一个队列的功能?要求给出算法和思路
  10. linux下ftp配置文件详解
  11. 介绍数据库中的wal技术_门禁系统中RFID与ETC两种新兴技术介绍
  12. zabbix*邮件报警 *用户参数User parameters *定义key值 *Agentd主动模式与被动模式
  13. 当我讲容灾交付前,我先说点啥?
  14. 利用Blob进行文件上传的完整步骤
  15. 飞入菜花无处寻的上一句是什么,飞入菜花无处寻是什么意思
  16. 乳清蛋白和支链氨基酸不得不说的关系
  17. Spring Boot2.0 - 玩转logback日志
  18. 计算机科学数学姚期智,科学网—姚期智:一流,从“姚班”开始 - 孙滔的博文...
  19. 【干货】一文详尽之支持向量机算法!
  20. 【C/C++牛客每日必刷】--- 牛客刷题系列

热门文章

  1. 华为手机下拉菜单没了_用了三年才知道华为录屏这么强大!再不会用,手机钱打水漂了...
  2. 生成路径 vs 设置_Simulink代码生成之模型配置
  3. 单时隙灵敏度有什么影响_英国大学设计出低价开源单分子显微镜
  4. ediplus 复制编辑一列_vi编辑器的使用详解
  5. 绝对编码和增量编码_用户体验设计师应该学习编码吗? 绝对
  6. 17、【 商品管理模块开发】——后台商品图片的springmvc和富文本上传以及ftp文件服务器的开发...
  7. 使用IDEA 提交代码到svn
  8. svnsync实现版本库的同步备份
  9. HDU4462-稻草人
  10. UITableView的优化原理