k8s学习笔记——k8s pv rbd手动挂载

//创建image

ceph osd pool create kube 9 9 //可做或者使用默认的rbd
rbd pool init kube
rbd create --size 2048 kube/static_pv

//获取管理key并进行64位编码

ceph auth get-key client.admin | base64

将内容保存下来

//创建secret(ceph-secret-default.yaml)

apiVersion: v1
kind: Secret
metadata:
  name: ceph-secret
  namespace: default
type: "kubernetes.io/rbd"
data:
  key: QVFCTVQrUmdxYkxzTUJBQS90ZExaTUVBNjY5bmxtODJkNitCeXc9PQ==  #这里的key就是上步保存的信息

 //创建pv (nginx-pv.yaml)

apiVersion: v1
kind: PersistentVolume
metadata:
  name: nginx-pv
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  rbd:
    monitors:
      - 10.12.70.201:6789,10.12.70.202:6789,10.12.70.203:6789
    pool: kube
    image: static_pv
    user: admin
    secretRef:
      name: ceph-secret
    fsType: xfs
    readOnly: false
  persistentVolumeReclaimPolicy: Recycle

//创建pvc(nginx-pvc.yaml)

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: nginx-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

//创建应用(nginx-deploy.yaml)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo
spec:
  selector:
    matchLabels:
      app: demo
  replicas: 1
  template:
    metadata:
      labels:
        app: demo
    spec:
      containers:
      - name: demo
        image: busybox
        command: ["sleep", "6000"]
        volumeMounts:
          - mountPath: "/usr/share/busybox"
            name: data
      volumes:
        - name: data
          persistentVolumeClaim:
            claimName: nginx-pvc

//执行yaml

kubectl apply -f ceph-secret-default.yaml
kubectl apply -f nginx-pv.yaml
kubectl apply -f nginx-pvc.yaml 
kubectl apply -f nginx-deploy.yaml   

//查看

//kubectl get secret

NAME                       TYPE                                  DATA   AGE
ceph-secret                kubernetes.io/rbd                     1      6d3h

//kubectl get pvc

NAME            STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
nginx-pvc       Bound    nginx-pv                                   1Gi        RWO                           5d20h

//kubectl get pv

NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                   STORAGECLASS   REASON   AGE
nginx-pv                                   1Gi        RWO            Recycle          Bound    default/nginx-pvc                               5d20h



//kubectl get pod
NAME                               READY   STATUS    RESTARTS   AGE

demo-9bbc4dd6f-f7kf4               1/1     Running   84         5d20h


//查看挂载是否成功

//kubectl exec -it demo-9bbc4dd6f-f7kf4 -- /bin/sh

//mount |grep rbd
/dev/rbd0 on /usr/share/busybox type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=64k,sunit=128,swidth=128,noquota)

//或者df |grep rbd
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/rbd0              1038336     40504    997832   4% /usr/share/busybox

像上面的内容的说明挂载成功了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ceph是一个分布式存储系统,包括多个组件,其包括Librbd块存储库。在Ceph,Librbd提供了一种将RBD(块设备)映射到客户端的方法,并使客户端能够读写这些设备。在本文,我们将分析Librbd块存储库的源代码以及RBD的读写过程。 1. Librbd源码分析 Librbd块存储库的源代码位于src/librbd目录下。其,包括librbd.cc、ImageCtx.cc、ImageWatcher.cc、Journal.cc等多个源代码文件。这些源代码文件组成了Librbd块存储库的核心。 其,librbd.cc是Librbd块存储库的主要源代码文件。在这个文件,包括了Librbd的初始化、映射、卸载等方法。ImageCtx.cc则是Image上下文,用于管理Image的状态、锁定、映射等信息。ImageWatcher.cc用于监控Image的状态变化,Journal.cc则是Librbd的Journal日志管理。 2. RBD读写流程源码分析 在CephRBD由client和server两个部分组成。client在客户端上运行,提供了将RBD映射到客户端的方法。server在存储集群运行,提供了RBD的存储和管理。 RBD的读写流程如下: 1)客户端向Ceph Monitor请求RBD映射信息,Monitor返回Image ID和Image特性; 2)客户端向Ceph OSD请求RBD数据块,OSD返回数据块内容; 3)客户端将数据写入或读取到本地块设备; 4)客户端向Ceph OSD写入或读取数据块,OSD返回操作结果; 5)客户端向Ceph Monitor请求解除RBD映射,Monitor返回解除结果。 在上述过程,涉及到的源代码文件有:librbd.cc、ImageCtx.cc、ImageWatcher.cc、Journal.cc等。 总结 Librbd块存储库和RBD读写流程是Ceph存储系统的核心组件之一,通过分析源代码可以更加深入地了解Ceph存储系统的实现原理。同时,对于开发者来说,也有助于在Ceph存储系统上构建更加高效、稳定的存储应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值