kubernetes之ceph rbd

Ceph 独一无二地用统一的系统提供了对象、块、和文件存储功能,它可靠性高、管理简便、并且是自由软件。 Ceph 的强大足以改变公司的 IT 基础架构、和管理海量数据。 Ceph 可提供极大的伸缩性——供成千用户访问 PB 乃至 EB 级的数据。 Ceph 节点以普通硬件和智能守护进程作为支撑点, Ceph 存储集群组织起了大量节点,它们之间靠相互通讯来复制数据、并动态地重分布数据。ceph rbd作为ceph的块设备,提供对kubernetes的后端持久性存储。

环境

ceph : 13.2.2 mimic
kubernetes :1.10.0
OS:centos 7.5

服务器 节点
k8s集群 master-192,node-193,node-194
ceph集群 node-193,node-194

使用

1.验证k8s集群

[root@master-192 st]# kubectl get nodes
NAME         STATUS   ROLES    AGE   VERSION
master-192   Ready    master   5d    v1.10.0
node-193     Ready    <none>   5d    v1.10.0
node-194     Ready    <none>   5d    v1.10.0

2.验证ceph集群

[root@node-194 ~]# ceph -s
  cluster:
    id:     735bfe99-027a-4abe-8ef6-e0fa84fec83b
    health: HEALTH_OK
 
  services:
    mon: 1 daemons, quorum node-194
    mgr: node-194(active)
    osd: 2 osds: 2 up, 2 in
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0  objects, 0 B
    usage:   2.0 GiB used, 38 GiB / 40 GiB avail
    pgs:     

3.创建pv
3.1首先创建secret,包含ceph操作key值

[root@master-192 ceph]# cat ceph-secret.yaml 
apiVersion: v1
kind: Secret
metadata:
  name: ceph-secret
type: "kubernetes.io/rbd"
data:
  key: QVFCSWplcGJXR29nRmhBQWhwRlZxSlgwZktNcDA3S3RacmJlNmc9PQo=

其中key获取如下:
[root@node-194 ~]# cat /etc/ceph/ceph.client.admin.keyring
[client.admin]
key = AQBIjepbWGogFhAAhpFVqJX0fKMp07KtZrbe6g==
caps mds = "allow *"
caps mgr = "allow *"
caps mon = "allow *"
caps osd = "allow *"
[root@node-194 ~]# echo AQBIjepbWGogFhAAhpFVqJX0fKMp07KtZrbe6g==|base64
QVFCSWplcGJXR29nRmhBQWhwRlZxSlgwZktNcDA3S3RacmJlNmc9PQo=

kubectl create -f ceph-secret.yaml

3.2 创建pv使用的ceph rbd pool和rbd image

[root@node-194 ~]# ceph osd pool create rbd 32
pool 'rbd' created
[root@node-194 ~]# rbd create --size 1024 test --image-feature layering
[root@node-194 ~]# rbd ls
test

3.3 创建pv

[root@master-192 st]# kubectl create -f pv.yaml

[root@master-192 st]# cat pv.yaml 
apiVersion: v1
kind: PersistentVolume
metadata:
  name: ceph-rbd-pv
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  rbd:
    monitors:
      - 172.30.81.194:6789
    pool: rbd
    image: test
    user: admin
    secretRef:
      name: ceph-secret
    fsType: ext4
    readOnly: false

3.4创建pvc

[root@master-192 st]# kubectl create -f pvc.yaml

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

3.5 创建pod验证

[root@master-192 st]# kubectl create -f pod.yaml

[root@master-192 st]# cat pod.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: hello
spec:
  restartPolicy: OnFailure
  hostNetwork: true
  containers:
  - name: hello
    image: alpine
    imagePullPolicy: Never
    command: ["/bin/sh","-c", "sleep 3000"]
    volumeMounts:
    - name: rbd
      mountPath: /mnt/rbd
  volumes:
  - name: rbd
    persistentVolumeClaim:
      claimName: ceph-rbd-pvc

pod运行情况

[root@master-192 st]# kubectl get pod -o wide
NAME    READY   STATUS    RESTARTS   AGE   IP              NODE
hello   1/1     Running   0          29s   172.30.81.194   node-194

可以看到/mnt/rbd已经绑定/dev/rbd0

[root@master-192 st]# kubectl exec -it hello sh
/ # df -h
Filesystem                Size      Used Available Use% Mounted on
overlay                  35.0G      3.0G     31.9G   9% /
tmpfs                    15.6G         0     15.6G   0% /dev
tmpfs                    15.6G         0     15.6G   0% /sys/fs/cgroup
/dev/rbd0               975.9M      2.5M    906.2M   0% /mnt/rbd
/dev/mapper/centos-root
                         35.0G      3.0G     31.9G   9% /dev/termination-log
/dev/mapper/centos-root
                         35.0G      3.0G     31.9G   9% /etc/resolv.conf
/dev/mapper/centos-root
                         35.0G      3.0G     31.9G   9% /etc/hostname
/dev/mapper/centos-root
                         35.0G      3.0G     31.9G   9% /etc/hosts
shm                      64.0M         0     64.0M   0% /dev/shm
/dev/mapper/centos-root
                         35.0G      3.0G     31.9G   9% /run/secrets
tmpfs                    15.6G     12.0K     15.6G   0% /run/secrets/kubernetes.io/serviceaccount
tmpfs                    15.6G         0     15.6G   0% /proc/acpi
tmpfs                    15.6G         0     15.6G   0% /proc/kcore
tmpfs                    15.6G         0     15.6G   0% /proc/timer_list
tmpfs                    15.6G         0     15.6G   0% /proc/timer_stats
tmpfs                    15.6G         0     15.6G   0% /proc/sched_debug
tmpfs                    15.6G         0     15.6G   0% /proc/scsi
tmpfs                    15.6G         0     15.6G   0% /sys/firmware
/ # 

node-194宿主机查看rbd绑定情况

[root@node-194 ~]# rbd showmapped
id pool image snap device    
0  rbd  test  -    /dev/rbd0 
[root@node-194 ~]# mount |grep rbd
/dev/rbd0 on /var/lib/kubelet/plugins/kubernetes.io/rbd/mounts/rbd-image-test type ext4 (rw,relatime,stripe=1024,data=ordered)
/dev/rbd0 on /var/lib/kubelet/pods/7037bc6f-e7b4-11e8-8fe7-5254003ceebc/volumes/kubernetes.io~rbd/ceph-rbd-pv type ext4 (rw,relatime,stripe=1024

可以看到宿主机通过map rbd的image到/dev下,然后挂载到对应的pod里面,所以在没有安装ceph集群的节点上需要安装ceph-common,否则rbd的映射挂载会失败。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,997评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,603评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,359评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,309评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,346评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,258评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,122评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,970评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,403评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,596评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,769评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,464评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,075评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,705评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,848评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,831评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,678评论 2 354

推荐阅读更多精彩内容