当前位置: 首页 > 编程日记 > 正文

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

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

使用Docker快速部署Ceph集群 , 然后使用这个Ceph集群作为Kubernetes的动态分配持久化存储。

Kubernetes集群要使用Ceph集群需要在每个Kubernetes节点上安装ceph-common

    1. 为kubernetes创建一个存储池

1

2

# ceph osd pool create k8s 128

pool 'k8s' created

 2. 创建用户

1

# ceph auth add client.k8s mon 'allow rx' osd 'allow rwx pool=k8s'

k8s用户只能对k8s这个存储池有读写权限,注意一定要有执行权限才能执行ceph命令

通过ceph auth list 查看

1

2

3

4

client.k8s

    key: AQC3Hm5Zan9LDhAAXZHCdAF39bXcEwdpV6y/cA==

    caps: [mon] allow r

    caps: [osd] allow rw pool=k8s

在存储池k8s下创建一个镜像测试下k8s这个用户是否可以操作

1

2

3

4

# rbd create k8s/foo --size 1G --id k8s

# rbd map k8s/foo --id k8s

/dev/rbd0

k8s这个ceph用户可以对k8s这个存储池进行操作了

  3.为ceph添加一个kubernetes secret

1

2

# echo "$(ceph auth get-key client.k8s)"|base64

QVFDM0htNVphbjlMRGhBQVhaSENkQUYzOWJYY0V3ZHBWNnkvY0E9PQo=

ceph-secret.yaml

1

2

3

4

5

6

7

8

apiVersion: v1

kind: Secret

metadata:

  name: ceph-secret

  namespace: kube-system

type: "kubernetes.io/rbd"

data:

  key: "QVFDM0htNVphbjlMRGhBQVhaSENkQUYzOWJYY0V3ZHBWNnkvY0E9PQo="

type这一行一定要有

1

# kubectl create -f ceph-secret.yaml

1

2

# kubectl get secret -n=kube-system|grep ceph

ceph-secret                     kubernetes.io/rbd                     1         1m

   4.创建一个StorageClass

ceph-rbd-storageclass.yaml

1

2

3

4

5

6

7

8

9

10

11

12

13

apiVersion: storage.k8s.io/v1beta1

kind: StorageClass

metadata:

   name: fast

provisioner: kubernetes.io/rbd

parameters:

  monitors: 172.30.30.215:6789,172.30.30.217:6789,172.30.30.219:6789

  adminId: k8s

  adminSecretName: ceph-secret

  adminSecretNamespace: kube-system

  pool: k8s

  userId: k8s

  userSecretName: ceph-secret

Kubernetes 1.6 以上使用 storage.k8s.io/v1

1

# kubectl create -f ceph-rbd-storageclass.yaml

1

2

3

# kubectl get storageclass

NAME      TYPE

fast      kubernetes.io/rbd

5.测试

ceph-pvc.json

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

{

  "kind": "PersistentVolumeClaim",

  "apiVersion": "v1",

  "metadata": {

    "name": "claim1",

    "annotations": {

        "volume.beta.kubernetes.io/storage-class": "fast"

    }

  },

  "spec": {

    "accessModes": [

      "ReadWriteOnce"

    ],

    "resources": {

      "requests": {

        "storage": "3Gi"

      }

    }

  }

}

1

2

3

4

5

6

# kubectl create -f ceph-pvc.json

# kubectl get pvc

NAME      STATUS    VOLUME                                     CAPACITY   ACCESSMODES   AGE

claim1    Bound     pvc-28b66dcb-6c82-11e7-94da-02672b869d7f   3Gi        RWO           11m

现在就可以使用Ceph RBD作为Kubernetes的动态分配持久化存储了。

转载于:https://my.oschina.net/xiaominmin/blog/1632894

相关文章:

Cosmos的基石:IL2CPU编译器--.net/C#开源操作系统学习系列三

本文的代码包以cosmos-12304.zip为例(从这个包开始,COSMOS的内核算是有了个基本的雏形,就像是一颗大树在出芽前会先长出庞大的根系,现在就要破土长出第一颗芽了) IL2CPU之于COSMOS就相当与GCC之于LINUX,查看…

【面试 多线程】【第九篇】多线程的问题

1.多线程有什么用 发挥多核CPU优势,防止阻塞,更快的处理数据 2.多线程的实现方式有哪几种,分别的特点优势是什么样的 1》继承Thread类,重写run方法,start启动多线程 2》实现Runnable接口,重写run方法&…

那个大战AlphaGo的柯洁,将免试入读清华大学工商管理专业

日前,柯洁将免试入读清华大学的消息经媒体曝光了出来。《2019 年优秀运动员免试入学推荐名单》3 月 10 日开始公示,围棋世界冠军柯洁的名字出现在名单上,其中表明他将就读清华大学工商管理类专业。据了解,柯洁预计今年下半年入学清…

【Qt】设置背景

1、使用样式表qss设置背景 QDialog 设置背景图片: dlg->setStyleSheet("QDialog{border-image: url(://test.png);}"); 设置背景颜色: dlg->setStyleSheet("QDialog{background-color: red;}"); QWidget 设置背景图片: wgt->setStyleSheet…

基于Hadoop的MapReduce框架研究报告

http://www.doc88.com/p-19830708273.html

【Qt】设置窗口透明度

1、使用setWindowOpacity设置透明度 setWindowOpacity(0.5); 设置完成会使窗体、标题栏、子控件都透明 2、使用样式表qss设置窗体透明 dlg->setStyleSheet("QDialog{background-color: rgba(255, 0, 0, 0.5);}");wgt->setStyleSheet("QWidget{backgrou…

7行Python代码,搭建可以识花的机器学习App|视频教程

你想学Python,却不知如何着手,那你需要一种更加有趣的学习方式。Siraj Raval是一位人工智能领域的编程高手,毕业于哥伦比亚大学,曾任职于 Twilio 和 Meetup,他通过制作教程类短视频的方式在Youtube上积累了大量的粉丝&…

java中缀表达式转后缀表达式(逆波兰算法)

四则运算是栈的重要应用之一 中缀表达式转后缀表达式(逆波兰算法)过程 从左到右遍历中缀表达式数字直接输出为后缀表达式一部分如果是符号,则判断与栈顶元素的优先级高于栈顶元素优先级直接入栈低于或等于栈顶优先级栈顶元素出栈并输出为后缀…

Wpf消息循环之消息传递

几天遇见一个问题需要检查某个wpf程序是否已经运行,如果没有运行则启动传递参数,如果已运行则需要直接传递消息。在没有运行 情况下传递参数很简单,我们只需要Process cmd窗口启动并传递参数,在程序中处理。但是如果程序已经启动有…

【Qt】使用sqlite3数据库时,主键自增和获取自增后的主键的

创建数据表格,设置主键自增 创建数据库时,启用主键自增加特性 Create table testTable (id INTEGER PRIMARY KEY AUTOINCREMENT,。。。。 注意事项:设置主键自增时(AUTOINCREMENT),主键类型必须是INTEGER&…

拿下斯坦福和剑桥双offer,00后的算法学习之路

董文馨,00后,精通英语,西班牙语。斯坦福大学计算机系和剑桥大学双Offer,秋季将进入斯坦福大学学习。10岁开始在国外上学;12岁学Scratch;13岁学HTML & CSS;14岁开始学Python & Java&…

Mybatis【配置文件】就是这么简单

配置文件和映射文件还有挺多的属性我还没有讲的,现在就把它们一一补全 映射文件 在mapper.xml文件中配置很多的sql语句,执行每个sql语句时,封装为MappedStatement对象,mapper.xml以statement为单位管理sql语句 Statement的实际位置…

cto denalil

Denali使用准虚拟化技术来提高x86电脑上虚拟机的性能。Denali的虚拟机为因特网服务专门支持了最小化的操作系统。 系统可以运行上千虚拟机。Xen与Denali不同,因为它试图运行适当数量的完整操作系统,而非大量轻量级操作系统。转载于:https://blog.51cto.c…

Redis学习笔记 - 数据类型与API(1)Key

Redis学习笔记 - 数据类型与API(1)Key Key相关命令 1. 常用命令 命令含义时间复杂度keys查找所有符合给定模式 pattern 的 keyO(N), N 为数据库中 key 的数量dbsize计算key的总数O(1)exists检查key是否存在O(1)del删除指定的key-valueO(1)exp…

【Qt】enum和QString的相互

使用Q_ENUM注册enum Q_ENUM使用元对象系统meta-object来注册,因此在enum所在的类中必须包含宏Q_OBJECT或者Q_GADGET。 例子如下 class MyClass : public QObject{Q_OBJECTpublic:MyClass(QObject *parent = 0);~MyClass();enum Priority { High, Low, VeryHigh, VeryLow };Q_…

Gmail全球大规模宕机

整理 | 非主流出品 | AI科技大本营(ID: rgznai100)今天(3 月 13 日),Google 的多项服务在全球范围内出现了不同程度的宕机,包括 Gmail、Google Drive、 Hangouts、谷歌地图等。受影响最大的是拥有超 10 亿用…

搭建域控服务器

作业环境 服务器端(VirtualBox VM) 操作系统:Windows Server 2003 Enterprise Edition SP2 IPAddress:192.168.1.1/255.255.255.0 Gateway:null 客户端(VirtualBox VM) 操作系统:Windows XP SP3 IPAddress:192.168.1.2…

【Git】ubuntu安装git

sudo apt-get install git 图形界面的:sudo apt-get install git-gui 查看ssh服务是否启动 sudo ps -e | grep ssh 如果没有启动执行如下命令; sudo service ssh start 如果没有ssh,使用如下命令安装 sudo apt-get install ssh

Composer 篇

学习网站Composer 中文网 资源包 Packagist Packagist / Composer 中国全量镜像如何安装 Composer下载 Composer安装前请务必确保已经正确安装了PHP。打开命令行窗口并执行php -v查看是否正确输出版本号。打开命令行并依次执行下列命令安装最新版本的 Composer:php …

西工大开源拥挤人群数据集生成工具,大幅提升算法精度 | CVPR 2019

作者 | 周强(CV君)转载自 我爱计算机视觉(公众号id:aicvml)近年来,因为拥挤人群计数在视频监控、公共安全方面的应用广泛,引起了不少学者的关注。简单说来这个任务就是给定图像,返回…

getElementById 不能取得visible=false 的控件解决方法

想要绑定textbox的回车事件到一个按钮上,但不想显示这个按钮,如果你把这个button的visible设置为false,那么你使用 getElementById是获取不到的,或者说取到的为空。这是因为Visiblefalse,在编译后,该控件在页面上不显示…

【Git】在本地创建git库管理自己的代码

1、创建本地库 git init . 新建库 git config --global user.email “hello163.com” git config --global user.name “laoer” git config --global core.editor vim //将默认编辑器由nano更改为vim 2、提交 2.1 git add . 将当前目录下所有文件添加到提交缓冲区 2.2 git …

“智慧血联网平台”亮相军民融合技术装备博览会

该平台可实现血液全程跟踪溯源,为大众提供安全、透明、便捷的用血服务。 一个打造智慧化血液管理新模式的血联网平台最近亮相第三届中国军民融合技术装备博览会。该平台可实现血液全程跟踪溯源,为大众提供安全、透明、便捷的用血服务。 此次博览会以“聚…

AI专利之争:小米超华为,国家电网才是大Boss?

作者 | 一一编辑 | 琥珀出品 | AI科技大本营(ID:rgznai100)以往相关机构发布 AI 专利数量排行榜时,如果表明“中国在 AI 专利申请数量上已经超过美国,中国在 AI 技术实力上已在国际上遥遥领先”,这类榜单会招致对中国科…

SLF4J 的几种实际应用模式--之二:SLF4J+Logback

前面讲的 SLF4J 的用法之一是 SLF4JLog4J,而这里要推出的组合是 SLF4JLogBack。不用 Log4J?难道还有比 Log4J 更好的日志实现吗?是的,答案就是 LogBack。假如你知道 LogBack 和 Log4J 是同出一位大师之手,你就不会觉得…

10行Python,搭建一个游戏AI | 视频教程

昨天为大家推荐了三个Python视频,包含:《利用Python,用4分钟时间搭建一个情感分析系统》、《7行Python代码,搭建一个可以识花的机器学习APP》、《10行Python,搭建一个可以自动作曲的神经网络》,今天营长再为…

ABAP git客户端

Jerry习惯把自己写的小程序放到自己的github上:https://github.com/i042416 对于写的ABAP程序,需要先把SAPGUI里的代码手动拷贝到本地,然后用git客户端push到github上。 但是其实可以直接在SAPGUI里通过一个ABAP实现的git客户端将代码push到g…

【Git】git 与远程库交互

一、远程操作 1、克隆 git clone <url> 2、提交 git add &#xff1a;添加 git commit -m “修改信息” &#xff1a;提交到本地 git branch -a &#xff1a;查看所有分支&#xff0c;红色的是远程分支 git fetch &#xff1a;获取远程分支 git diff HEAD FETCH_HEAD…

[轉]在jQuery1.5中使用deferred对象 - 拿着放大镜看Promise

http://www.cnblogs.com/sanshi/archive/2011/03/11/1981789.html 不錯的JS方面的文章 三生石上

拼多多成立技术顾问委员会,陆奇将领导相关工作

整理 | 琥珀出品 | AI科技大本营&#xff08;公众号id&#xff1a;rgznai100&#xff09;美国东部时间 3 月 13 日上午&#xff0c;拼多多&#xff08;NASDAQ&#xff1a;PDD&#xff09;公布了截止 2018 年 12 月 31 日的第四季度和全年年的未经审计财务业绩。拼多多创始人、C…