分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

kubernetes挂载ceph rbd和cephfs的方法

发布时间:2023-09-06 01:49责任编辑:白小东关键词:kubernetes

[toc]

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: v1kind: Secretmetadata: ?name: ceph-secretdata:#Please note this value is base64 encoded.# echo "keystring"|base64 ?key: QVFDaWtERlpzODcwQWhBQTdxMWRGODBWOFZxMWNGNnZtNmJHVGc9PQo=

创建PV

创建test.pv.yml文件,内容如下:

apiVersion: v1kind: PersistentVolumemetadata: ?name: test-pvspec: ?capacity: ???storage: 2Gi ?accessModes: ???- ReadWriteOnce ?rbd: ???#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: admin ???secretRef: ?????name: ceph-secret ???fsType: xfs ???readOnly: false ?persistentVolumeReclaimPolicy: Recycle
kubectl create -f test.pv.yml

创建PVC

创建test.pvc.yml文件,内容如下:

kind: PersistentVolumeClaimapiVersion: extensions/v1beta1metadata: ?name: test-pvcspec: ?accessModes: ???- ReadWriteOnce ?resources: ???requests: ?????storage: 2Gi
kubectl create -f test.pvc.yml

创建deployment挂载PVC

创建test.dm文件,内容如下:

apiVersion: extensions/v1beta1kind: Deploymentmetadata: ?name: testspec: ?replicas: 1 ?template: ???metadata: ?????labels: ???????app: test ???spec: ?????containers: ?????- name: test ???????image: dk-reg.op.douyuyuba.com/op-base/openresty:1.9.15 ???????ports: ???????- containerPort: 80 ???????volumeMounts: ?????????- mountPath: "/data" ???????????name: data ?????volumes: ???????- name: data ?????????persistentVolumeClaim: ???????????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-systemkubectl create secret generic ceph-secret --type="kubernetes.io/rbd" --from-literal=key=‘AQCikDFZs870AhAA7q1dF80V8Vq1cF6vm6bGTg==‘ --namespace=default

创建StorageClass

创建test.sc.yml文件,内容如下:

apiVersion: storage.k8s.io/v1kind: StorageClassmetadata: ?name: test-storageclassprovisioner: kubernetes.io/rbdparameters: ?monitors: 192.168.1.11:6789,192.168.1.12:6789,192.168.1.13:6789 ?# Ceph 客户端用户ID(非k8s的) ?adminId: admin ?adminSecretName: ceph-secret ?adminSecretNamespace: kube-system ?pool: data ?userId: admin ?userSecretName: ceph-secret

创建PVC

创建test.pvc.yml文件,内容如下:

kind: PersistentVolumeClaimapiVersion: v1metadata: ?name: test-sc-pvc ?annotations: ????volume.beta.kubernetes.io/storage-class: test-storageclassspec: ?accessModes: ???- ReadWriteOnce ?resources: ???requests: ?????storage: 2Gi
kubectl create -f test.pvc.yml

至于挂载,与PV & PVC的方式一致,不再重复说明

k8s挂载Cephfs

上面大致说明了使用k8s挂载ceph rbd块设备的方法。这里简单说下k8s挂载ceph 文件系统的方法。

首先secret可以直接与上面复用,不用再单独创建。也不需要再创建pv和pvc。直接在deployment中挂载即可,方法如下:

apiVersion: extensions/v1beta1kind: Deploymentmetadata: ?name: testspec: ?replicas: 1 ?template: ???metadata: ?????labels: ???????app: test ???spec: ?????containers: ?????- name: test ???????image: dk-reg.op.douyuyuba.com/op-base/openresty:1.9.15 ???????ports: ???????- containerPort: 80 ???????volumeMounts: ?????????- mountPath: "/data" ???????????name: data ?????volumes: ???????- name: data ?????????cephfs: ???????????monitors: ?????????????- 10.5.10.117:6789 ?????????????- 10.5.10.236:6789 ?????????????- 10.5.10.227:6789 ???????????path: /data ???????????user: admin ???????????secretRef: ?????????????name: ceph-secret

kubernetes挂载ceph rbd和cephfs的方法

原文地址:https://www.cnblogs.com/breezey/p/8849501.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved