• 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地址

  • 相关阅读:
    3.18 最大单词长度——力扣
    KCF追踪器在opencv和RM中的应用
    java Spring Boot生成图片二维码
    next.js极速入门
    除六价铬工艺
    管理类联考——写作——技巧篇——书写标点符号使用要求规范文档
    计算机视觉基础知识(十三)--推理和训练
    深度学习实战90-基于多尺度混合注意力卷积神经网络的关系抽取模型
    UTM 坐标系
    如何在Xamarin中快速集成Android版远程配置
  • 原文地址:https://blog.csdn.net/liudongyang123/article/details/126692565