• k8s对接ceph,ceph-csi方式


    1.上传ceph-csi-yaml和ceph-csi-image 两个文件夹到服务器

    2.加载 ceph-csi-image里面的镜像

    3.将加载好的镜像上传到本地harbor上。

    4.修改ceph-csi-yaml文件夹里面的 yaml文件内容

    k8s对接ceph离线安装包

    #csi-config-map.yaml

    1. ---
    2. apiVersion: v1
    3. kind: ConfigMap
    4. data:
    5.   config.json: |-
    6.     [
    7.       {
    8.         "clusterID": "2a5306a8-885f-40b7-91f6-ec9410b53d3c",  // ceph集群的 id 通过ceph -s 可以看到
    9.         "monitors": [
    10.           "10.20.20.103:6789",
    11.           "10.20.20.104:6789",
    12.           "10.20.20.105:6789"
    13.         ]
    14.       }
    15.     ]
    16. metadata:
    17.   name: ceph-csi-config

    #ceph-config-map.yaml

    1. ---
    2. apiVersion: v1
    3. kind: ConfigMap
    4. data:
    5.   ceph.conf: |
    6.     [global]
    7.     fsid = 0c69001e-202b-11ed-a599-8c2a8e4b8e7f // ceph集群的 id
    8.     mon_host = 192.168.4.130 // ceph mon 节点的 ip
    9.   keyring: |
    10. metadata:
    11.   name: ceph-config

    #csi-rbd-secret.yaml

    1. ---
    2. apiVersion: v1
    3. kind: Secret
    4. metadata:
    5.   name: csi-rbd-secret
    6.   namespace: default
    7. stringData:
    8.   userID: kubernetes 
    9.   userKey: AQA18kdi+4iYHhAAbRmfkKJ/XvB1PdYTTBEdwA== 
    10.   encryptionPassphrase: test_passphrase

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

    其中userID 就是 下面的 kubernetes 当然如果在创建ceph集群的时候已经 创建好了池子并且给池子赋予了账户和权限,也可以直接用已经创建好了的,我是 直接用的 cinder的

     

    userKey 就是 /etc/ceph/ceph.client.cinder.keyring 文件内容

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

    #csi-storageClass.yaml

    1. ---
    2. apiVersion: storage.k8s.io/v1
    3. kind: StorageClass
    4. metadata:
    5.    name: csi-rbd-sc
    6. provisioner: rbd.csi.ceph.com
    7. parameters:
    8.    clusterID: 0c69001e-202b-11ed-a599-8c2a8e4b8e7f
    9.    pool: volumes 
    10.    imageFeatures: layering
    11.    csi.storage.k8s.io/provisioner-secret-name: csi-rbd-secret
    12.    csi.storage.k8s.io/provisioner-secret-namespace: default
    13.    csi.storage.k8s.io/controller-expand-secret-name: csi-rbd-secret
    14.    csi.storage.k8s.io/controller-expand-secret-namespace: default
    15.    csi.storage.k8s.io/node-stage-secret-name: csi-rbd-secret
    16.    csi.storage.k8s.io/node-stage-secret-namespace: default
    17.    csi.storage.k8s.io/fstype: ext4
    18. reclaimPolicy: Delete
    19. allowVolumeExpansion: true
    20. mountOptions:
    21.    - discard

    #创建pvc yaml文件

    1. ---
    2. apiVersion: v1
    3. kind: PersistentVolumeClaim
    4. metadata:
    5.   name: rbd-pvc
    6. spec:
    7.   accessModes:
    8.     - ReadWriteOnce
    9.     resources:
    10.         requests:
    11.       storage: 1Gi
    12.     storageClassName: csi-rbd-sc

    #修改 csi-rbdplugin.yaml和csi-rbdplugin-provisioner.yaml 文件里面的 镜像地址,为自己的harbor地址

  • 相关阅读:
    ​LeetCode解法汇总2342. 数位和相等数对的最大和
    Java8流Stream的创建和操作
    【无标题】
    如何优雅的解决按钮“重复点击”问题(vue)
    《SAIS Supervising and Augmenting Intermediate Steps for Document-Level Relation Extraction》论文阅读笔记
    嵌入式Linux(树莓派)环境设置和交叉编译
    创新领航 | 竹云参编《基于区块链的数据资产评估实施指南》正式发布!
    前端菜鸟浅谈Web前端开发技术
    Java基础实战项目-------网上订餐系统
    jquery ajax 提交json格式数据
  • 原文地址:https://blog.csdn.net/liudongyang123/article/details/126692565