kubernetes挂载ceph rbd和cephfs
微信公众号搜索 DevOps和k8s全栈技术 ,关注之后,在后台回复 k8s视频,就可获取k8s免费视频和文档,也可扫描文章最后的二维码关注公众号。
目录
k8s挂载Ceph RBD
创建secret
创建StorageClass
创建PVC
创建secret
创建PV
创建PVC
创建deployment挂载PVC
PV & PVC方式
StorageClass方式
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
往期精彩文章回顾
kubernetes面试题汇总
DevOps视频和资料免费领取
kubernetes技术分享-可用于企业内部培训
kubernetes系列文章第一篇-k8s基本介绍
kubernetes系列文章第二篇-kubectl
kubernetes集群中部署EFK日志管理系统
Kubernetes中部署MySQL高可用集群
Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统-超详细文档
k8s1.18多master节点高可用集群安装-超详细中文官方文档
Kubernetes Pod健康检查-livenessProbe和readinessProbe
kubernetes pod生命周期管理-postStart和preStop
k8s中蓝绿部署、金丝雀发布、滚动更新汇总
运维常见问题汇总-tomcat篇
运维常见问题汇总-tomcat部署java项目大量close_wait解决方案
关于linux内核参数的调优,你需要知道
点击在看少个 bug????
技术交流群
扫码加群????
微信:luckylucky421302
微信公众号
长按指纹关注公众号????
参考资料
https://www.cnblogs.com/breezey/p/8849501.html
kubernetes挂载ceph rbd和cephfs相关推荐
- 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 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文件服务器,Ceph分布式存储实战(6)——Ceph存储配置(CephFS的挂载)
一.什么是POSIX标准 有一种情况是,在windows上写的代码,放到Linux上去运行居然报错,为什么? 比如在代码中需要创建一个进程,linux下是fork函数,windows下是creatpr ...
- k8s学习笔记——ceph rbd本地手动挂载
//在客户端节点上执行 1.创建rbd手动挂载 //ceph osd pool create <pool> [<pg_num:int>] [<pgp_num:int> ...
- ceph rbd(rados block device)配置与挂载
rados块设备 创建rbd设备 rbd create ceph-client1-rbd1 --size 10240 默认情况下,RBD镜像会保存在ceph集群的rbd存储池中.可以使用-p参数指定其 ...
- Grafana+Prometheus实现Ceph监控和cephfs的基本使用(二)
Ceph块设备接口(RBD) Ceph块设备,也称为RADOS块设备(简称RBD),是一种基于RADOS存储系统支持超配(thin-provisioned).可 伸缩的条带化数据存储系统,它通过lib ...
- k8s(十二)、分布式存储Ceph RBD使用
前言 上篇文章介绍了k8s使用pv/pvc 的方式使用cephfs, k8s(十一).分布式存储Cephfs使用 Ceph存储有三种存储接口,分别是: 对象存储 Ceph Object Gateway ...
最新文章
- MMD_5b_ComputationalAdvertising
- page_index--template.html(0)源码
- Metasploit设置VERBOSE参数技巧
- Elasticsearch中的Multi Match Query
- flutter图片预览_flutter好用的轮子推荐四-可定制的图片预览查看器photo
- [BZOJ 1452] Count
- ddns客户端_DDNS哪家最方便?试试看Mikrotik的ROS!
- 微型计算机方面的论文,微型计算机论文.doc
- 许昌市襄县机器人_襄城县机器人自动码垛机生产工厂批发销售
- 理清网站数据分析思路导图
- Python IO模型
- paip.css的覆盖
- 带约束的遗传算法代码优化
- 学习通下载任务点内的课件
- 51单片机程序0到60计数个位逢5和6不显示,十位逢1不显示http://www.51hei.com/bbs/mcu-h24-1.html
- 微软的teredo服务器,win10系统通过teredo连接ipv6的具体教程
- 基于proteus的计数器设计
- Tableau实战 网站客户细分仪表盘
- 人工智能 知识表示方法:谓词逻辑和语义网络 题目练习
- php-cli和php-fpm的关系是什么?