kubernets使用ceph-rbd作为storageclass并创建pvc和应用

k8s 项目 使用ceph rbd 作为存储 1,配置storageclass 1、创建pod时,kubelet需要使用rbd命令去检测和挂载pv对应的ceph image,所以要在所有的worker节点安装ceph客户端ceph-common。 将ceph的ceph.client.admin.keyring和ceph.conf文件拷贝到master的/etc/ceph目录下 yum -y install ceph-common 2、创建 osd pool 在ceph的mon或者admin节点 ceph osd pool create kube 1 阅读详情

1.Kubernetes StorageClass 介绍

Kubernetes 集群存储 PV 支持 Static 静态配置以及 Dynamic 动态配置,动态卷配置 (Dynamic provisioning) 可以根据需要动态的创建存储卷。静态配置方式,集群管理员必须手动调用云/存储服务提供商的接口来配置新的固定大小的 Image 存储卷,然后创建 PV 对象以在 Kubernetes 中请求分配使用它们。通过动态卷配置,能自动化完成以上两步骤,它无须集群管理员预先配置存储资源,而是使用 StorageClass 对象指定的供应商来动态配置存储资源。

2.创建StorageClass

StorageClass 对象支持多种类型的存储卷插件来提供 PV,从 Storage Classes 官方文档 provisioner 部分可以看到,它目前支持很多种存储卷类型,其中就有我们熟悉的 Ceph RBD 类型。

AWSElasticBlockStore
AzureFile
AzureDisk
Cinder
Flocker
GCEPersistentDisk
Glusterfs
PhotonPersistentDisk
Quobyte
RBD
VsphereVolume
PortworxVolume
ScaleIO
StorageOS
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

当然除了上述 k8s 内部支持类别,如果我们需要使用其他类型卷插件,例如 NFS、CephFS 等第三方熟知的类型,可以去 kubernetes-incubator/external-storage 这个 GitHub 仓库,这里有更多扩展存储卷插件支持,下边我们在使用 RBD 作为 StorageClass 的时候也会演示到。

正式开始之前要提一下,通过前边两篇文章 初试 Kubernetes 集群使用 Ceph RBD 块存储 和 初试 Kubernetes 集群使用 CephFS 文件存储 的介绍,我们知道,k8s 不支持跨节点挂载同一 Ceph RBD,支持跨节点挂载 CephFS,让所有的任务都调度到指定node上执行,来保证针对 RBD 的操作在同一节点上。同时既然是动态配置存储资源,意思就是我们不需要提前创建好指定大小的 Image 了,而是动态创建它,所以这里只需要参照 初试 Centos7 上 Ceph 存储集群搭建搭建好 Ceph 存储集群即可,不需要进行 RBD 操作。

2.1 创建 ceph-secret-admin

我们知道 Ceph 存储集群默认是开启了 cephx 认证的,所以我们可以创建一个名称为 ceph-secret-admin 的 secret 对象,用于 k8s volume 插件通过 cephx 认证访问 ceph 存储集群。首先获取并 base64 生成一下 k8s secret 认证 key,然后创建 ceph-secret-admin.yaml 文件,key 值替换一下。

获取并 base64 生成 k8s secret 认证 key

$ ceph auth get-key client.admin | base64
QVFCS3FYSmFRa05wSEJBQWxIRkgrR1NMQ1B3TzNXS2V2YUlMVkE9PQ==
  • 1
  • 2

创建名称为 ceph-secret-admin 的 Secret。

$ vim ceph-secret-admin.yaml
apiVersion: v1
kind: Secret
metadata:
  name: ceph-secret-admin
  namespace: kube-system
type: "kubernetes.io/rbd"  
data:
  key: QVFCS3FYSmFRa05wSEJBQWxIRkgrR1NMQ1B3TzNXS2V2YUlMVkE9PQ==
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
$ kubectl create -f ceph-secret-admin.yaml 
secret "ceph-secret-admin" created
  • 1
  • 2

2.2 创建 rbd-storage-class

通过 StorageClass RBD Config Example 官方示例代码,我们可以看到如下信息。

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: fast
provisioner: kubernetes.io/rbd
parameters:
  monitors: 10.16.153.105:6789
  adminId: admin
  adminSecretName: ceph-secret
  adminSecretNamespace: kube-system
  pool: kube
  userId: kube
  userSecretName: ceph-secret-user
  fsType: ext4
  imageFormat: "2"
  imageFeatures: "layering"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

这里每个字段我就不一一解释了,其中有几个字段要说明一下:

  • provisioner: 该字段指定使用存储卷类型为 kubernetes.io/rbd,注意 kubernetes.io/ 开头为 k8s 内部支持的存储提供者,不同的存储卷提供者类型这里要修改成对应的值。
  • adminId | userId: 这里需要指定两种 Ceph 角色 admin 和其他 user,admin 角色默认已经有了,其他 user 可以去 Ceph 集群创建一个并赋对应权限值,如果不创建,也可以都指定为 admin。
  • adminSecretName: 为上边创建的 Ceph 管理员 admin 使用的 ceph-secret-admin。secret中必须要有“kubernetes.io/rbd”这个type。
  • adminSecretNamespace 管理员 secret 使用的命名空间,默认 default。
  • imageFormat: Ceph RBD image format, “1” or “2”. Default is “1”. 
    • 经过查看ceph文档rbd 块镜像有支持两种格式: –image-format format-id,format-id取值为1或2,默认为 2。 
      – format 1 - 新建 rbd 映像时使用最初的格式。此格式兼容所有版本的 librbd 和内核模块,但是不支持较新的功能,像克隆。 
      – format 2 - 使用第二版 rbd 格式, librbd 和 3.11 版以上内核模块才支持(除非是分拆的模块)。此格式增加了克隆支持,使得扩展更容易,还允许以后增加新功能。
  • imageFeatures: This parameter is optional and should only be used if you set imageFormat to “2”. Currently supported features are layering only. Default is “”, and no features are turned on.

参照上边示例,我们创建一个 rbd-storage-class.yaml 文件如下。

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: rbd
provisioner: kubernetes.io/rbd
parameters:
  monitors: 10.142.21.21:6789,10.142.21.22:6789,10.142.21.23:6789
  adminId: admin
  adminSecretName: ceph-secret-admin
  adminSecretNamespace: kube-system
  pool: rbd
  userId: admin
  userSecretName: ceph-secret-admin
  fsType: ext4
  imageFormat: "1"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

说明:

然后我们创建一下名称为 rbd 类型为 rbd 的 storage-class 看下:

$ kubectl create -f rbd-storage-class.yaml 
storageclass "rbd" created
$ kubectl get storageclass
NAME      TYPE
rbd       kubernetes.io/rbd
  • 1
  • 2
  • 3
  • 4
  • 5

3. 创建 pvc

现在 storageClass 已经创建好了,这里跟之前的区别就是,不需要创建 PV 和提前创建好指定大小的 Image,只需要创建 PVC 时请求指定存储大小就行,k8s 会根据请求存储大小和类型动态创建并分配,是不是很方便。那么我们就来创建一个 PVC 申请 1G 存储空间,新建 rbd-pvc.yaml 文件如下。

$ vim rbd-pv.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: rbd-pvc1
  namespace: kube-system
spec:
  storageClassName: rbd
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

注意: 
这里要使用 storageClassName: rbd 指明我们使用的 storageClass 为前面创建的 rbd。accessModes 指定模型为 ReadWriteOnce rbd 只支持 ReadWriteOnce 和 ReadOnlyMany,因为下边有写入操作,所以这里使用 ReadWriteOnce 即可。

然后创建一个PVC:

$ kubectl create -f rbd-pvc.yaml 
    persistentvolumeclaim "rbd-pvc1" created

$ kubectl get pvc -n kube-system
NAME        STATUS    VOLUME                                     CAPACITY   ACCESSMODES   STORAGECLASS         AGE   
rbd-pvc1    Bound     pvc-b9ecad19-07bc-11e8-a9ca-00505694eb6a   1Gi        RWO           rbd                  2m

还自动创建出pv:
kubectl get pv
NAME                                       CAPACITY   ACCESSMODES   RECLAIMPOLICY   STATUS    CLAIM                                           STORAGECLASS               REASON    AGE
pvc-b9ecad19-07bc-11e8-a9ca-00505694eb6a   1Gi        RWO           Delete          Bound     kube-system/rbd-pvc1                            rbd                                  5m
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

用rbd命令查看: 
这里写图片描述
我们会发现,没有提前创建好 1G 大小的 rbd image,而是创建 PVC 时申请了 1G 存储,k8s 就自动创建好了指定大小的 Image。

此时相当于执行了rbd create,还没有把这个image 映射到内核,并格式化为块设备。

4. 创建应用

这一步相当于在pod所在的节点执行了rbd map、mkfs、mount

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-use-rbd
  namespace: kube-system
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - image: nginx:1.11.4-alpine
        imagePullPolicy: IfNotPresent
        name: nginx-use-rbd
        volumeMounts:
        - mountPath: /test
          name: rbd-pvc
      volumes:
      - name: rbd-pvc
        persistentVolumeClaim:
          claimName: rbd-pvc1
      nodeSelector:
        kubernetes.io/hostname: k8smaster01
      tolerations:
      - key: "master"
        operator: "Equal"
        value: "true"
        effect: "NoSchedule"
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-use-rbd
  namespace: kube-system
spec:
  type: NodePort
  ports:
  - name: nginx-use-rbd
    port: 80
    targetPort: 80
    nodePort: 30099
  selector:
    app: nginx
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45

创建成功后在kubelet日志中看到如下内容: 
这里写图片描述
df -h 可以看到盘挂载上来了: 
这里写图片描述
dmesg | tail可以看到: 
这里写图片描述

并挂载到容器内部,太方便了有木有! 同时,我们看到默认使用的 format 为 1,这里也可以指定格式为 2(需要高版本的ceph和rbd支持),然后可以在 rbd-storage-class.yaml 中指定 imageFormat: “2”,同时还可以指定 imageFeatures: layering 等等。

最后,要提一下的是,如果我们使用动态配置的卷,则默认的回收策略为 “删除”。这意味着,在默认的情况下,当 PVC 被删除时,基础的 PV 和对应的存储也会被删除。如果需要保留存储在卷上的数据,则必须在 PV 被设置之后将回收策略从 delete 更改为 retain。可以通过修改 PV 对象中的 persistentVolumeReclaimPolicy 字段的值来修改 PV 的回收策略。

5. 问题

  • ceph-rbd的ReadWriteOnce问题

    ceph-rbd只支持RWO和RWM,也就是说写数据的话rbd只能挂给一个node,当一个应用只有一个pod实例的时候还好,当有多个pod实例的时候就要求这些实例一定要起在同一个节点上。实验发现,创建多实例应用不做啥约束的话,k8s的调度系统并不会根据这个应用所挂载的pvc类型是RWO而给你去把所有pod实例调度到同一个节点,最终结果甚至会一个pod也创建不出来,这个issue:https://github.com/kubernetes/kubernetes/issues/26567

参考:

1.http://blog.youkuaiyun.com/aixiaoyang168/article/details/79120095 
2.https://kubernetes.io/docs/concepts/storage/storage-classes/#ceph-rbd

使用Intel编译器编译OpenFOAM 本文总结了使用INTEL编译器编译OpenFOAM的过程 阅读详情

相关推荐

Unity URP项目里Post Processing死活没效果?别慌,这5个坑我帮你踩过了

本文详细解析了Unity URP项目中Post Processing效果失效的五大常见问题,包括渲染管线配置冲突、Volume作用域误判、摄像机参数漏配、Layer层级冲突和Profile引用异常。通过实际项目案例和代码示例,提供专业级解决方案,帮助开发者快速排查并修复后处理效果不生效的问题。

weixin_33721427的博客 334

k8s实践利用storageclass实现pvc的动态provision(volume使用ceph rbd)

最近实践了利用k8s的storageclass,实现pvc的动态创建,绑定,特记录如下.    1 已经部署好的k8s集群和ceph集群.    2  创建ceph-secret,后面创建storageclass需要使用.        启动key后面的内容为ceph的admin用户的秘钥base64编码的结果         3  创建storag

V 云原生实践课堂 1万+

OrCAD Capture CIS 17.4 原理图绘制

OrCAD Capture CIS 17.4 原理图绘制

qq_38960013的博客 7638

k8s-ceph-rbd

k8s使用ceph实现动态持久化存储 https://juejin.im/post/5b766b5bf265da27e36efdfa96 CountingStars_ 2018.08.17 14:37* 字数 435 阅读 3432评论 1喜欢 3简介本文章介绍如何使用ceph为k8s提供动态申请pv的功能。ceph提供底层存储功能,cephfs方式支持k8s的pv的3种访问模式ReadWri...

cadn2004的博客 422

告别第三方插件:官方Fused Library如何重塑Android库的合并与发布流程

本文详细介绍了Android官方推出的Fused Library如何替代第三方fat-aar插件,优化Android库的合并与发布流程。通过原生支持、智能依赖管理等优势,Fused Library解决了版本兼容性、依赖传递等核心痛点,提供了更稳定高效的开发体验。文章还提供了迁移实操指南和工程实践建议,帮助开发者顺利过渡到官方方案。

weixin_42561040的博客 259

解决鸿蒙/荣耀设备GMS应用调试中的“Play保护机制认证”报错

本文详细解析了在鸿蒙或荣耀设备上调试GMS应用时,遇到“Play保护机制认证”报错的根本原因与解决方案。核心在于获取设备的GMS Device ID,并通过Google官方渠道完成临时注册,从而绕过认证限制。文章提供了无需Root和ADB查询两种具体方法,并分享了授权后的故障排查与实战经验,帮助开发者高效解决问题。

weixin_29288313的博客 301

k8s创建pvc失败排查

问题 在 k8s环境中创建pvc报错如下 unexpected error getting claim reference: selfLink was empty, can't make reference

小喽喽 2655

BIOS更新后PIN不可用怎么办?从原理到实操的完整修复指南

在计算机维护中,BIOS更新是常见的固件升级操作,但其引发的登录异常却常让用户措手不及。Windows Hello PIN并非传统密码,它通过TPM芯片与设备启动环境(PCR状态)强绑定,一旦主板固件或安全启动配置改变,TPM便会拒绝释放密钥,导致“由于此设备上的更改,你的PIN不再可用”。理解这一原理后,恢复路径清晰可控:优先尝试密码登录,或通过WinRE替换utilman.exe创建临时管理员,必要时还需处理BitLocker恢复密钥。本文面向系统维护与数据安全场景,系统梳理PIN失效的恢复流程与避坑方

weixin_31364787的博客 385

使用Ceph集群作为Kubernetes的动态分配持久化存储

使用Docker快速部署Ceph集群 , 然后使用这个Ceph集群作为Kubernetes的 动态分配持久化存储。 Kubernetes集群要使用Ceph集群需要在每个Kubernetes节点上安装ceph-common 1. 为kubernetes创建一个存储池 1 2 # ceph osd pool create k8s 128 pool...

weixin_34090643的博客 104

人工智能训练师三级考试题型全解析|190道真题样例+30天备考路线

人工智能训练师三级考试并不神秘:理论考190道选择题(刷题就能过),实操考代码+方案设计(练练就会)。核心是花时间——30天系统备考,足以从容通过。如果你想从零开始系统备考,覆盖所有考点和实操技能,欢迎查看我的专栏:📖《人工智能训练师三级·从零到拿证完全指南》80篇系统化内容,覆盖报名、备考、冲刺、拿证全流程六大模块知识点逐个击破,每个考点都讲透实操代码题手把手教学,附带完整参考代码高频考点速记 + 易错题精讲 + 3套模拟试卷30天备考计划 + 冲刺复习策略。

白话机器学习 6097

《备考信息系统项目管理师》 - 专栏介绍和目录

本专栏会持续详细梳理软考高级信息系统项目管理师(高项)的考点、所有历年真题(包括综合知识、案例分析、论文)等,有论文专项,预测模拟题等内容。需要的可以先订阅下哦。

数据知道的博客 2万+

K8s企业实践使用storageclass+ceph实现动态存储

一、原理简介 因为要搭建,很多人还不太懂原理,我这里只是简单说明 使用StatefulSet的前提: Kubernetes集群的版本 >=1.5安装好DNS集群插件,版本 >=15) StatefulSet 注意: 官方提示StatefulSets在1.9中是稳定的 StatefulSet由Service和volumeClaimTemplates组成。Service中的多个Pod将会被分别编号,并挂载volumeClaimTemplates中声明的PV。 1.每个节点..

因上努力,果上随缘。但行好事,莫问前程。 3582

AgentScope Java 入门:Spring AI Alibaba 与 AgentScope 的定位与区别

摘要:Spring AI Alibaba是阿里基于Spring AI开发的本地化AI应用框架,旨在服务Java开发者。它提供模型接入、函数调用、RAG等功能,并与阿里云基础设施深度集成。同时,阿里开源了多智能体框架AgentScope,其Java版(AgentScope-Java)专注于Agentic设计理念。两者将协同发展:Spring AI Alibaba侧重Spring生态集成,AgentScope-Java强化智能体能力。未来计划包括支持AgentScope、升级Admin平台,以及推进Server

SmartSi 1549

K8S中Ceph RBD类型的Volume与PVC/PV的区别

可以看到,在这个 Pod 的 Volumes 定义中,我们只需要声明它的类型是 persistentVolumeClaim,然后指定 PVC 的名字,而完全不必关心 Volume 本身的定义。可以看到,这个 PV 对象的 spec.rbd 字段,正是我们前面介绍过的 Ceph RBD Volume 的详细定义。(2)这个 Ceph RBD 对应的存储服务器的地址、用户名、授权文件的位置,也都被轻易地暴露给了全公司的所有开发人员,这是一个典型的信息被“过度暴露”的例子。

魏波 915

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

第31讲:K8S StorageClass使用rbd-provisioner驱动与Ceph RBD块存储集成

rbd-provisioner和csi-provisioner都是StorageClass对接Ceph集群块存储的驱动客户端,CSI客户端部署相对复杂,并且镜像拉取很费力,RBD客户端部署非常简单,相当于开箱即用。无论使用哪种类型的驱动都可以,不过使用RBD客户端时,会遇到一个大坑,如下所示。

江晓龙的博客 3081

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

云原生通用存储框架:Rook介绍与使用

新钛云服已为您服务1007天基于Kubernetes (或K8S)的云原生应用程序已广泛用于生产环境,这带来了一个挑战:如何将传统存储系统集成到Kubernetes集群中?我们建议使用Ro...

NewTyun的博客 4947

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

rbd 命令详解

usage: rbd <command> ... Command-line interface for managing Ceph RBD images. Positional arguments: <command> bench Simple benchmark. children Display children of an image or its

晨光运维之路 2098

k8s全栈技术讲解+企业案例演示[带你快速掌握和使用k8s]【进阶版】

一、为什么学习kubernetes众所周知,随着容器的快速发展,容器管理工具kubernetes也应运而生,目前不仅百度、京东、阿里、google等大公司在使用kubernetes,一些中小企业也开始把业务迁移到kubernetes,那么作为运维、开发、测试或者架构师来说,必须要掌握这项技术,才能提现我们的工作价值,才能在行业具备保持较高的技术水平,kubernetes作为成熟的容器编排工具,具有容器集群的自动化部署、自动化伸缩和故障自恢复的能力,让容器的部署和管理变得更加容易,能够给企业和提供一个智能化的容器云管理平台,为企业快速上云提供一个安全可靠的解决方案,此课程主要介绍kubernetes1.14/kubernetes1.15版本高可用集群的安装部署和使用,通过我多年工作经验总结,带你深入体验企业实战案例,让您轻松快速的掌握k8s,接下来让我们一起出发吧。 二、课程亮点 三、讲师简介 先超(lucky):高级运维工程师、资深DevOps工程师,在互联网上市公司拥有多年一线运维经验,主导过亿级pv项目的架构设计和运维工作 主要研究方向: 1.云计算方向:容器 (kubernetes、docker),虚拟化(kvm、Vmware vSphere),微服务(istio),PaaS(openshift),IaaS(openstack)等2.系统/运维方向:linux系统下的常用组件(nginx,tomcat,elasticsearch,zookeeper,kafka等),DevOps(Jenkins+gitlab+sonarqube+nexus+k8s),CI/CD,监控(zabbix、prometheus、falcon)等.

kubernetes一次生产故障日记

test## 1. 一次K8S测试环境故障处理过程: ## 1. 故障描述:    51放假期间公司停电,关掉所有k8s测试机器,包括3台k8s master,5台k8s node,3台ceph机器。放假来电之后启动k8s机器和所有的ceph机器;开机之后,发现很多k8s服务无法启动,经过判断发现是ceph的存储问题。后续解决ceph存储osd节点down状态问题。但是发现依赖cephfs文件系统...

weixin_34138139的博客 1385

rbd-mirror 技术内幕

rbd-mirror 技术内幕 众所周知,ceph在Jewel版本发布的时候,release了一个块存储的重要特性,那就是rbd mirroring。rbd mirroring 是一种两个集群之间,异步镜像的机制。通过一个rbd-mirror的服务,依赖于image的journaling特性,来实现集群间的crash-consistent的image复制。

csdn_yds的专栏 6894

kubeadm k8s配置 ceph rbd存储 类型storageClass

k8s的storageclass,实现pvc的动态创建,绑定 一、安装ceph 1、Install with RBAC roles 参考:https://github.com/kubernetes-incubator/external-storage/tree/master/ceph/rbd/deploy #cat rbd-provisioner.yaml kind: ClusterRole ...

不懂代码的胖子 2608

k8s(十二)、分布式存储Ceph RBD使用

前言 上篇文章介绍了k8s使用pv/pvc 的方式使用cephfs,k8s(十一)、分布式存储Cephfs使用 Ceph存储有三种存储接口,分别是:对象存储 Ceph Object Gateway 块设备 RBD 文件系统 CEPHFS Kubernetes支持后两种存储接口,支持的接入模式如下图: 在本篇将测试使用ceph rbd作持久化存储后端 RBD创建测试 rbd的使用分为3个步骤: 1.服务端/客户端创建块设备image 2.客户端将image映射进linux系统内核,内核识别出该块设

Vic的博客 1674

k8s 对接ceph并使用StorageClass动态创建pvc

k8s 对接ceph并使用StorageClass创建动态pvc 前提条件,已经安装ceph和k8s,具体环境信息如下: 一. 服务器环境 操作系统:centos 7.6 ceph版本:14.2.10(nautilus) k8s版本:v1.18.0 arch: ARM64 GO版本:go1.14.6 docker版本:19.03.12 在k8s中使用volume主要有两种使用方式,一种的静态方法,一种是动态方法,本文主要介绍动态方法。k8s集群默认不支持动态创建pvc,官方推出了external-sto

隔壁老姚的博客 5489

ceph相关

参考 https://www.jianshu.com/p/750a8fde377b?tdsourcetag=s_pctim_aiomsg k8s部署参考 https://blog.youkuaiyun.com/sun007700/article/details/88736547 简介 本文章介绍如何使用ceph为k8s提供动态申请pv的功能。ceph提供底层存储功能,cephfs方式支持...

sun007700的专栏 1516

ceph format2格式image

1、接上篇,这创建一个format 2格式的image $rbd create rbd/format2_image_1G –image-format=2 -s 1G2、显示image元数据信息:size,order,block_name_prefix,format,features,flag $rbd info rbd/format2_image_1G rbd image ‘format2_i

weixin_37871174的博客 1399

k8s1.18 StorageClass 使用rbd-provisioner提供ceph rbd持久化存储

rbd-provisioner为kubernetes 1.5+版本提供了类似于kubernetes.io/rbd的ceph rbd持久化存储动态配置实现。 一些用户会使用kubeadm来部署集群,或者将kube-controller-manager以容器的方式运行。这种方式下,kubernetes在创建使用ceph rbd pv/pvc时没任何问题,但使用dynamic provisioning自动管理存储生命周期时会报错。提示"rbd: create volume failed, err: failed

qq_25934401的博客 3520
上一篇: k8s实践利用storageclass实现pvc的动态provision(volume使用ceph rbd)
下一篇: 《大话 Ceph 》之 CephX 那点事儿
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值