kubernetes挂载ceph rbd和cephfs的方法
目录
- k8s挂载Ceph RBD
- PV & PVC方式
- 创建secret
- 创建PV
- 创建PVC
- 创建deployment挂载PVC
- StorageClass方式
- 创建secret
- 创建StorageClass
- 创建PVC
- PV & 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的方法相关推荐
- kubernetes挂载ceph rbd和cephfs
微信公众号搜索 DevOps和k8s全栈技术 ,关注之后,在后台回复 k8s视频,就可获取k8s免费视频和文档,也可扫描文章最后的二维码关注公众号. 目录 k8s挂载Ceph RBD 创建secret ...
- Kubernetes 基于ceph rbd生成pv
1.创建ceph-secret这个k8s secret对象,这个secret对象用于k8s volume插件访问ceph集群,获取client.admin的keyring值,并用base64编码,在m ...
- 2. Ceph的权限管理、RBD与Cephfs的挂载使用和MDS的高可用
1. Ceph用户的权限管理及授权流程 Ceph使用Ceph X协议对客户端进行身份的认证. 客户端与Mon节点的通讯均需要通过Cephx认证,可在Mon节点关闭Cephx认证,关闭认证后将允许所有访 ...
- ceph文件服务器,Ceph分布式存储实战(6)——Ceph存储配置(CephFS的挂载)
一.什么是POSIX标准 有一种情况是,在windows上写的代码,放到Linux上去运行居然报错,为什么? 比如在代码中需要创建一个进程,linux下是fork函数,windows下是creatpr ...
- ceph rbd mysql_如何在 Kubernetes 环境中搭建 MySQL(三):使用 PVC 挂接 RBD
MySQL in Kubernetes MySQL 中的数据是关键信息,是有状态的,不可能随着 MySQL pod 的销毁而被销毁,所以数据必须要外接到一个可靠的存储系统中,目前已经有了 Ceph 系 ...
- Ceph性能测试(RBD、CephFS、NFS、Cache Tier)
本文是以下两篇文章的后续: 探索fio参数如何选择以及全方位对比HDD和SSD性能:部署Ceph前测试磁盘性能,同时基于fio测试参数的变化深入了解fio原理和磁盘IO特点. CentOS8使用cep ...
- ceph rbd(rados block device)配置与挂载
rados块设备 创建rbd设备 rbd create ceph-client1-rbd1 --size 10240 默认情况下,RBD镜像会保存在ceph集群的rbd存储池中.可以使用-p参数指定其 ...
- k8s学习笔记——ceph rbd本地手动挂载
//在客户端节点上执行 1.创建rbd手动挂载 //ceph osd pool create <pool> [<pg_num:int>] [<pgp_num:int> ...
- 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 ...
- Grafana+Prometheus实现Ceph监控和cephfs的基本使用(二)
Ceph块设备接口(RBD) Ceph块设备,也称为RADOS块设备(简称RBD),是一种基于RADOS存储系统支持超配(thin-provisioned).可 伸缩的条带化数据存储系统,它通过lib ...
最新文章
- 使用XML创建Excel文档
- SpringMvc 3.x跨域+ajax请求
- verilog基础—规范化参数定义parameter
- “数据中心迁移到IDC数据中心”最怕遇到这几个问题
- OpenGL多线程实例
- 十大排序算法之堆排序
- 基础 - 结构体大小计算
- 【本人秃顶程序员】技巧分享丨spring的RestTemplate的妙用,你知道吗?
- 优秀的程序员是那种过单行线马路都要往两边看的人
- php绘制饼图,php怎么绘制饼图?
- jquery点击非div区域隐藏div
- 随便说说:在ASP.NET应用程序中上传文件
- 人生苦短,我用python——当我在玩python的时候我玩些什么 -
- 武汉理工大学java,武汉理工大学 web技术基础
- 【原创】大叔问题定位分享(11)Spark中对大表子查询加limit为什么会报Broadcast超时错误...
- pytorch学习笔记(二十六):NIN
- 你真的会用搜索引擎吗
- android eventbus view,Android-EventBus框架详细介绍与简单实现
- 获取APP包名和activity的几种方法
- 服务器系统装驱动精灵,云服务器安装驱动精灵
热门文章
- The General Framework Of Signal ProcessingOTFS Modulation Scheme(信号处理的一般框架OTFS调制)(4)
- eclipse修改编码方式
- linux环境Mechanize安装,在linux下安装activepython2.5 setuptools ClientCookie
- python二维数组切片_python语言多维数组切片方法
- python重复输出_python日志重复输出
- pytorch 保存模型,加载预训练模型问题
- 霍夫变换 文本图片倾斜矫正 python实现
- MarathonLb的负载研究
- MongoDB 在windows shell环境下的基本操作和命令的使用示例(三)
- 一句话木马针对的不同框架使用