目录

  • k8s挂载Ceph RBD

    • PV & PVC方式

      • 创建secret
      • 创建PV
      • 创建PVC
      • 创建deployment挂载PVC
    • StorageClass方式
      • 创建secret
      • 创建StorageClass
      • 创建PVC
  • k8s挂载Cephfs

k8s挂载Ceph RBD

k8s挂载Ceph RBD有两种方式,一种是传统的PV&PVC的方式,也就是说需要管理员先预先创建好相关PV和PVC,然后对应的deployment或者replication来挂载PVC使用。而在k8s 1.4以后,kubernetes提供了一种更加方便的动态创建PV的方式,即StorageClass。使用StorageClass时无需预先创建固定大小的PV来等待使用者创建PVC使用,而是直接创建PVC即可使用。

需要说明的是,要想让k8s的node节点执行挂载ceph rbd的指令,需要在所有节点上安装ceph-common包。直接通过yum安装即可。

PV & PVC方式

创建secret

#获取管理key并进行64位编码
ceph auth get-key client.admin | base64

创建ceph-secret.yml文件,内容如下:

apiVersion: v1
kind: Secret
metadata:name: ceph-secret
data:
#Please note this value is base64 encoded.
# echo "keystring"|base64key: QVFDaWtERlpzODcwQWhBQTdxMWRGODBWOFZxMWNGNnZtNmJHVGc9PQo=

创建PV

创建test.pv.yml文件,内容如下:

apiVersion: v1
kind: PersistentVolume
metadata:name: test-pv
spec:capacity:storage: 2GiaccessModes:- ReadWriteOncerbd:#ceph的monitor节点monitors:       - 10.5.10.117:6789- 10.5.10.236:6789- 10.5.10.227:6789#ceph的存储池名字pool: data #在存储池里创建的image的名字image: data         user: adminsecretRef:name: ceph-secretfsType: xfsreadOnly: falsepersistentVolumeReclaimPolicy: Recycle
kubectl create -f test.pv.yml

创建PVC

创建test.pvc.yml文件,内容如下:

kind: PersistentVolumeClaim
apiVersion: extensions/v1beta1
metadata:name: test-pvc
spec:accessModes:- ReadWriteOnceresources:requests:storage: 2Gi
kubectl create -f test.pvc.yml

创建deployment挂载PVC

创建test.dm文件,内容如下:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:name: test
spec:replicas: 1template:metadata:labels:app: testspec:containers:- name: testimage: dk-reg.op.douyuyuba.com/op-base/openresty:1.9.15ports:- containerPort: 80volumeMounts:- mountPath: "/data"name: datavolumes:- name: datapersistentVolumeClaim:claimName: test-pvc
kubectl create -f test.dm.yml

StorageClass方式

创建secret

由于StorageClass要求ceph的secret type必须为kubernetes.io/rbd,所以在上面PV & PVC方式中创建的secret无法使用,需要重新创建。如下:

# 其中key的部分为ceph原生的key,未使用base64重新编码
kubectl create secret generic ceph-secret --type="kubernetes.io/rbd" --from-literal=key='AQCikDFZs870AhAA7q1dF80V8Vq1cF6vm6bGTg==' --namespace=kube-system
kubectl create secret generic ceph-secret --type="kubernetes.io/rbd" --from-literal=key='AQCikDFZs870AhAA7q1dF80V8Vq1cF6vm6bGTg==' --namespace=default

创建StorageClass

创建test.sc.yml文件,内容如下:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: test-storageclass
provisioner: kubernetes.io/rbd
parameters:monitors: 192.168.1.11:6789,192.168.1.12:6789,192.168.1.13:6789# Ceph 客户端用户ID(非k8s的)adminId: adminadminSecretName: ceph-secretadminSecretNamespace: kube-systempool: datauserId: adminuserSecretName: ceph-secret

创建PVC

创建test.pvc.yml文件,内容如下:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:name: test-sc-pvcannotations: volume.beta.kubernetes.io/storage-class: test-storageclass
spec:accessModes:- ReadWriteOnceresources:requests:storage: 2Gi
kubectl create -f test.pvc.yml

至于挂载,与PV & PVC的方式一致,不再重复说明

k8s挂载Cephfs

上面大致说明了使用k8s挂载ceph rbd块设备的方法。这里简单说下k8s挂载ceph 文件系统的方法。

首先secret可以直接与上面复用,不用再单独创建。也不需要再创建pv和pvc。直接在deployment中挂载即可,方法如下:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:name: test
spec:replicas: 1template:metadata:labels:app: testspec:containers:- name: testimage: dk-reg.op.douyuyuba.com/op-base/openresty:1.9.15ports:- containerPort: 80volumeMounts:- mountPath: "/data"name: datavolumes:- name: datacephfs:monitors:- 10.5.10.117:6789- 10.5.10.236:6789- 10.5.10.227:6789path: /datauser: adminsecretRef:name: ceph-secret

转载于:https://www.cnblogs.com/breezey/p/8849501.html

kubernetes挂载ceph rbd和cephfs的方法相关推荐

  1. kubernetes挂载ceph rbd和cephfs

    微信公众号搜索 DevOps和k8s全栈技术 ,关注之后,在后台回复 k8s视频,就可获取k8s免费视频和文档,也可扫描文章最后的二维码关注公众号. 目录 k8s挂载Ceph RBD 创建secret ...

  2. Kubernetes 基于ceph rbd生成pv

    1.创建ceph-secret这个k8s secret对象,这个secret对象用于k8s volume插件访问ceph集群,获取client.admin的keyring值,并用base64编码,在m ...

  3. 2. Ceph的权限管理、RBD与Cephfs的挂载使用和MDS的高可用

    1. Ceph用户的权限管理及授权流程 Ceph使用Ceph X协议对客户端进行身份的认证. 客户端与Mon节点的通讯均需要通过Cephx认证,可在Mon节点关闭Cephx认证,关闭认证后将允许所有访 ...

  4. ceph文件服务器,Ceph分布式存储实战(6)——Ceph存储配置(CephFS的挂载)

    一.什么是POSIX标准 有一种情况是,在windows上写的代码,放到Linux上去运行居然报错,为什么? 比如在代码中需要创建一个进程,linux下是fork函数,windows下是creatpr ...

  5. ceph rbd mysql_如何在 Kubernetes 环境中搭建 MySQL(三):使用 PVC 挂接 RBD

    MySQL in Kubernetes MySQL 中的数据是关键信息,是有状态的,不可能随着 MySQL pod 的销毁而被销毁,所以数据必须要外接到一个可靠的存储系统中,目前已经有了 Ceph 系 ...

  6. Ceph性能测试(RBD、CephFS、NFS、Cache Tier)

    本文是以下两篇文章的后续: 探索fio参数如何选择以及全方位对比HDD和SSD性能:部署Ceph前测试磁盘性能,同时基于fio测试参数的变化深入了解fio原理和磁盘IO特点. CentOS8使用cep ...

  7. ceph rbd(rados block device)配置与挂载

    rados块设备 创建rbd设备 rbd create ceph-client1-rbd1 --size 10240 默认情况下,RBD镜像会保存在ceph集群的rbd存储池中.可以使用-p参数指定其 ...

  8. k8s学习笔记——ceph rbd本地手动挂载

    //在客户端节点上执行 1.创建rbd手动挂载 //ceph osd pool create <pool> [<pg_num:int>] [<pgp_num:int> ...

  9. Kubernetes集成Ceph

    1. 版本 2. 块存储 2.1. 准备 2.2. csi模式–当前使用 2.2.1. 配置configmap 2.2.2. 配置secret 2.2.3. 配置rbac 2.2.4. 配置provi ...

  10. Grafana+Prometheus实现Ceph监控和cephfs的基本使用(二)

    Ceph块设备接口(RBD) Ceph块设备,也称为RADOS块设备(简称RBD),是一种基于RADOS存储系统支持超配(thin-provisioned).可 伸缩的条带化数据存储系统,它通过lib ...

最新文章

  1. 使用XML创建Excel文档
  2. SpringMvc 3.x跨域+ajax请求
  3. verilog基础—规范化参数定义parameter
  4. “数据中心迁移到IDC数据中心”最怕遇到这几个问题
  5. OpenGL多线程实例
  6. 十大排序算法之堆排序
  7. 基础 - 结构体大小计算
  8. 【本人秃顶程序员】技巧分享丨spring的RestTemplate的妙用,你知道吗?
  9. 优秀的程序员是那种过单行线马路都要往两边看的人
  10. php绘制饼图,php怎么绘制饼图?
  11. jquery点击非div区域隐藏div
  12. 随便说说:在ASP.NET应用程序中上传文件
  13. 人生苦短,我用python——当我在玩python的时候我玩些什么 -
  14. 武汉理工大学java,武汉理工大学 web技术基础
  15. 【原创】大叔问题定位分享(11)Spark中对大表子查询加limit为什么会报Broadcast超时错误...
  16. pytorch学习笔记(二十六):NIN
  17. 你真的会用搜索引擎吗
  18. android eventbus view,Android-EventBus框架详细介绍与简单实现
  19. 获取APP包名和activity的几种方法
  20. 服务器系统装驱动精灵,云服务器安装驱动精灵

热门文章

  1. The General Framework Of Signal ProcessingOTFS Modulation Scheme(信号处理的一般框架OTFS调制)(4)
  2. eclipse修改编码方式
  3. linux环境Mechanize安装,在linux下安装activepython2.5 setuptools ClientCookie
  4. python二维数组切片_python语言多维数组切片方法
  5. python重复输出_python日志重复输出
  6. pytorch 保存模型,加载预训练模型问题
  7. 霍夫变换 文本图片倾斜矫正 python实现
  8. MarathonLb的负载研究
  9. MongoDB 在windows shell环境下的基本操作和命令的使用示例(三)
  10. 一句话木马针对的不同框架使用