前期准备

对接方式

有两种方式可以使用k8s对接ceph

  • 使用第三方的rbd provisioner,但是由于官方已经不再进行维护因此随着版本越来越高,其对应的rbd provisioner内置的ceph-common版本已经跟不上ceph的版本了,现在其内置的ceph-common版本是m版,如果集群是m版可以考虑使用
  • 使用官方的ceph csi,一直在更新,推荐使用,本文使用的就是该种方法

ceph-csi版本选择

一定要记得k8s的版本与ceph-csi对应!否则会有很多bug

现阶段对应ceph csi与k8s版本对应如下:

对于ceph集群最好是N版以及更高的版本

选择对应版本之后,仓库版本也要进行选择,比如我此次选择的是3.5.1版本,那么仓库版本需要选择3.5版本

不要git clone代码,我们用到的就是deploy目录下的内容

镜像源

国内的推荐:

搭建环境(以RBD为例)

  1. ceph-csi/deploy/rbd/kubernetes/下的所有yaml文件拷贝到本地

  2. 创建csi-config-map.yaml

    clusterID就是集群ID,ceph -s即可获得

    ---
    apiVersion: v1
    kind: ConfigMap
    data:config.json: |-[{"clusterID": "2a5306a8-885f-40b7-91f6-ec9410b53d3c","monitors": ["10.20.20.103:6789","10.20.20.104:6789","10.20.20.105:6789"]}]
    metadata:name: ceph-csi-config
    
  3. 创建csi-kms-config-map.yaml,也可以不创建,但是需要将csi-rbdplugin-provisioner.yamlcsi-rbdplugin.yaml中kms有关内容注释掉

    ---
    apiVersion: v1
    kind: ConfigMap
    data:config.json: |-{}
    metadata:name: ceph-csi-encryption-kms-config
    
  4. 创建ceph-config-map.yaml

    ceph.conf就是复制ceph集群的配置文件,也就是/ect/ceph/ceph.conf文件中的对应内容

    ---
    apiVersion: v1
    kind: ConfigMap
    data:ceph.conf: |[global]fsid = 2a5306a8-885f-40b7-91f6-ec9410b53d3cpublic_network = 10.20.20.0/24mon_initial_members = server103mon_host = 10.20.20.103auth_cluster_required = cephxauth_service_required = cephxauth_client_required = cephx# keyring is a required key and its value should be emptykeyring: |
    metadata:name: ceph-config
    
  5. 创建csi-rbd-secret.yaml

    ---
    apiVersion: v1
    kind: Secret
    metadata:name: csi-rbd-secretnamespace: default
    stringData:userID: kubernetesuserKey: AQA18kdi+4iYHhAAbRmfkKJ/XvB1PdYTTBEdwA== encryptionPassphrase: test_passphrase
    

    其中的userID与userKey通过以下方式获取

    1. 创建存储池

      ceph osd pool create k8s 128 128
      rbd pool init k8s
      
    2. 创建并授权认证用户

      ceph auth get-or-create client.kubernetes mon 'profile rbd' osd 'profile rbd pool=k8s' mgr 'profile rbd pool=k8s'
      

      这里的kubernetes就是userID,对应的key为userKey

    3. apply以上的所有文件

      一共如下:

      • ceph-csi/deploy/rbd/kubernetes/ (github上的文件)
      • csi-config-map.yaml
      • csi-kms-config-map.yaml (可有可无)
      • ceph-config-map.yaml
      • csi-rbd-secret.yaml
    4. 创建storageclass

      ---
      apiVersion: storage.k8s.io/v1
      kind: StorageClass
      metadata:name: csi-rbd-sc
      provisioner: rbd.csi.ceph.com
      parameters:clusterID: 2a5306a8-885f-40b7-91f6-ec9410b53d3cpool: k8s #之前创建pool的名称imageFeatures: layeringcsi.storage.k8s.io/provisioner-secret-name: csi-rbd-secretcsi.storage.k8s.io/provisioner-secret-namespace: defaultcsi.storage.k8s.io/controller-expand-secret-name: csi-rbd-secretcsi.storage.k8s.io/controller-expand-secret-namespace: defaultcsi.storage.k8s.io/node-stage-secret-name: csi-rbd-secretcsi.storage.k8s.io/node-stage-secret-namespace: defaultcsi.storage.k8s.io/fstype: ext4
      reclaimPolicy: Delete
      allowVolumeExpansion: true
      mountOptions:- discard
      
    5. 创建pvc

      ---
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:name: rbd-pvc
      spec:accessModes:- ReadWriteOnceresources:requests:storage: 1GistorageClassName: csi-rbd-sc
      

超详细的k8s对接ceph RBD存储相关推荐

  1. K8S使用Ceph RBD作为后端存储

    一.准备工作 Ceph版本:v13.2.5 mimic稳定版 1.Ceph上准备存储池 [root@ceph-node1 ceph]# ceph osd pool create k8s 128 128 ...

  2. 超详细!K8s 面试知识点

    标题超详细!K8s 知识点 简述ETCD及其特点? etcd 是 CoreOS 团队发起的开源项目,是一个管理配置信息和服务发现(service discovery)的项目,它的目标是构建一个高可用的 ...

  3. rancher k8s 对接 ceph 存储

    本文永久链接: https://www.xtplayer.cn/kubernetes/storage/k8s-storage-ceph/ 本文编写的前提是已有正常工作的 ceph 存储服务,并且 Ra ...

  4. K8S最新版本集群部署超详细(k8s版本1.5.1)docker 版本19.03.1以及基本操作和服务介绍。

    更新:今天抽时间写了昨天部署的一键脚本: date:Aug 3,2019 <Kubernetes最新版本1.15.1,shell脚本一键部署,刚刚完成测试,实用.> 最近利用空闲时间,把之 ...

  5. k8s使用 ceph rbd 模式 踩坑

    创建pod时,kubelet需要使用rbd命令去检测和挂载pv对应的ceph image,所以要在所有的worker节点安装ceph客户端ceph-common. 将ceph的ceph.client. ...

  6. k8s对接smb/cifs存储

    之前文章提到,k8s官方是支持nfs存储的,那么在windows常见的文件共享协议是否也支持呢.答案是肯定的.不过支持的方式是通过CSI接口进行支持的.官方提供的项目是csi-driver-smb 官 ...

  7. java超详细小程序对接微信支付(二),看完不会你打我

    4.支付通知回调 B-验证签名 因为这个接口是微信进行回调的,但是如果别人知道了这个接口就给进行伪造信息进行调用这个接口 补充一点,这里这个接口最后要返回给微信success 不然会一直进行调用该接口 ...

  8. kubernetes挂载ceph rbd和cephfs

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

  9. k8s主从自动切换mysql_K8S与Ceph RBD集成-多主与主从数据库示例

    参考文章: 感谢以上作者提供的技术参考,这里我加以整理,分别实现了多主数据库集群和主从数据库结合Ceph RDB的实现方式.以下配置只为测试使用,不能做为生产配置. K8S中存储的分类 在K8S的持久 ...

最新文章

  1. CATransition
  2. c语言删除成绩记录的代码,学校让用c语言编的成绩管理系统,删除的代码有点问题,求教...
  3. WEB开发之如何改善PHP开发方式
  4. TestNG测试框架之TestNG.xml/YAML
  5. 知识图谱学习笔记-知识图谱介绍
  6. chart控件做实时曲线显示_用PyQt5.QtChart实现动态曲线图
  7. python numpy读取数据_python使用numpy读取、保存txt数据的实例
  8. 【数据结构与算法】之深入解析“删除二叉搜索树中的节点”的求解思路与算法示例
  9. linux系统调用函数---12
  10. angularjs $state.go页面不刷新数据
  11. 易维帮助台:让IT运维服务与企业业务发展需求高度融合
  12. Maven无法下载com.oracle:ojdbc14:jar解决方法
  13. APP支付和H5网页支付有哪些不同?
  14. 【算法入门必刷】数据结构-栈(一)
  15. UE4 材质笔记之水洼(贴花)
  16. 大数据正当时,理解这几个术语很重要
  17. HM代码阅读2:AMVP预测函数Void TEncSearch::xEstimateMvPredAMVP()
  18. IOS 开发 iPhone屏幕尺寸、分辨率及适配
  19. Linux卸载安装bind,Bind编译安装详解
  20. CuDNN library: 7.3.1 but source was compiled with: 7.6.5. StartAbort Unknown: Failed to get convolu

热门文章

  1. [源码解析] PyTorch 流水线并行实现 (1)--基础知识
  2. Android面试题目及其答案
  3. 入门 - 01- Java帝国的诞生
  4. Win 2003 IE 增强的安全配置应该如何关闭
  5. 以太网通信,UDP通信
  6. 模拟信号和数字信号讲堂(一),模拟信号和数字信号之模拟信号详解
  7. 二叉树前序遍历执行过程
  8. 【RPA学习天地:版本解读】艺赛旗iS-RPA2021.2版本亮点
  9. 爬取起点中文网站原创风云榜小说排行
  10. 【散文】 醉月湖畔,为谁染红妆