原文链接:https://fuckcloudnative.io/posts/kubernetes-storage-using-ceph-rbd/ 本文详细介绍了如何在 Kubernetes 集群中部署 ceph-csi(v3.1.0),并使用 RBD 作为持久化存储. 需要的环境参考下图: 本文使用的环境版本信息: Kubernetes 版本: $ kubectl get node NAME STATUS ROLES AGE VERSION sealos01 Ready master 23d v…
1.所有节点安装 # zypper -n in ceph-common 复制 ceph.conf 到 worker 节点上 # scp admin:/etc/ceph/ceph.conf /etc/ceph/ 2.创建池 # ceph osd pool create caasp4 3.创建 key ,并存储到 /etc/ceph/ 目录中 # ceph auth get-or-create client.caasp4 mon 'allow r' \ osd 'allow rwx pool=caa…
像Kubernetes 这样的容器编排工具正在彻底改变应用程序的开发和部署方式.随着微服务架构的兴起,以及基础架构与应用程序逻辑从开发人员的角度解耦,开发人员越来越关注构建软件和交付价值. Kubernetes 对管理的物理机器进行抽象.使用Kubernetes,你可以通过描述获取所需的内存总量和计算能力,而无需担心底层基础架构. 在管理Docker 镜像时,Kubernetes 还让应用程序变得可移植.一旦使用Kubernetes 开发容器化架构,它们就可以部署在任何地方 - 公有云.混合云.…
使用Docker快速部署Ceph集群 , 然后使用这个Ceph集群作为Kubernetes的动态分配持久化存储. Kubernetes集群要使用Ceph集群需要在每个Kubernetes节点上安装ceph-common 1. 为kubernetes创建一个存储池 # ceph osd pool create k8s 128 pool 'k8s' created 2. 创建用户 # ceph auth add client.k8s mon 'allow rx' osd 'allow rwx poo…
1. 在Ceph上为Kubernetes创建一个存储池 # ceph osd pool create k8s 2. 创建k8s用户 # ceph auth get-or-create client.k8s mon 'allow r' osd 'allow rwx pool=k8s' -o ceph.client.k8s.keyring 3. 将k8s用户的key进行base64编码 这是Kubernetes访问Ceph的密钥,会保存在Kubernetes的Secret中 # grep key c…
描述 ceph-csi扩展各种存储类型的卷的管理能力,实现第三方存储ceph的各种操作能力与k8s存储系统的结合.通过 ceph-csi 使用 ceph rbd块设备,它动态地提供rbd以支持 Kubernetes 持久化存储,并将这些rbd映射给 pod做为块设备持久化数据使用. Ceph 将pod存在块设备的数据以副本机制的方式存储在多个osd上,实现pod数据具有更高的可靠性. 部署环境信息 OS: CentOS Linux release 7.9.2009 (Core) Kubectl…
一.有一个ceph cluster,假设已经准备好了,文档网上一大堆 二.开始集成ceph和kuberntes 2.1 禁用rbd features rbd image有4个 features,layering, exclusive-lock, object-map, fast-diff, deep-flatten因为目前内核仅支持layering,修改默认配置每个ceph node的/etc/ceph/ceph.conf 添加一行rbd_default_features = 1这样之后创建的i…
0. 前言 最近在学习张磊老师的 深入剖析Kubernetes 系列课程,最近学到了 Kubernetes 容器持久化存储部分 现对这一部分的相关学习和体会做一下整理,内容参考 深入剖析Kubernetes 原文,仅作为自己后续回顾方便 希望详细了解的同学可以移步至原文支持一下原作者 参考原文:深入剖析Kubernetes 1. PV.PVC.StorageClass 关系梳理 1.1 相关概念 PV 表示是持久化存储数据卷对象.这个 API 对象定义了一个持久化存储在宿主机上的目录(如 NFS…
一.集群和组件版本 K8S集群:1.17.3+Ceph集群:Nautilus(stables)Ceph-CSI:release-v3.1snapshotter-controller:release-2.1Linue kernel:3.10.0-1127.19.1.el7.x86_64 + 镜像版本: docker pull quay.io/k8scsi/csi-snapshotter:v2.1.1docker pull quay.io/k8scsi/csi-snapshotter:v2.1.0d…
转载自 https://blog.csdn.net/dkfajsldfsdfsd/article/details/81319735 ConfigMap.Secret.emptyDir.hostPath等属于临时性存储,当pod被调度到某个节点上时,它们随pod的创建而创建,临时占用节点存储资源,当pod离开节点时,存储资源被交还给节点,pod一旦离开它们就失效,不具备持久化存储数据的能力.与此相反,持久化存储拥有独立的生命周期,具备持久化存储能力,其后端一般是独立的存储系统如NFS.iSCSI.…
在使用容器之后,我们需要考虑的另外一个问题就是持久化存储,怎么保证容器内的数据存储到我们的服务器硬盘上.这样容器在重建后,依然可以使用之前的数据.但是显然存储资源和 CPU 资源以及内存资源有很大不同,为了屏蔽底层的技术实现细节,让用户更加方便的使用,Kubernetes便引入了 PV 和 PVC 两个重要的资源对象来实现对存储的管理. 一.概念 PV 的全称是:PersistentVolume(持久化卷),是对底层的共享存储的一种抽象,PV 由管理员进行创建和配置,它和具体的底层的共享存储技术…
RBD存储卷 目前 CaaSP4 支持多种 Volume 类型,这里选择 Ceph RBD(Rados Block Device),主要有如下好处: Ceph 经过多年开发,已经非常熟,社区也很活跃: Ceph 同时支持对象存储,块存储和文件系统接口: 环境准备条件 1.搭建环境 操作系统版本: SLES15 SP1,无需安装 swap 内核版本:4.12.14-197.18-default Kubernetes 版本:CaaSP 4 , v1.15.2 Ceph :Storage 6 VMwa…
作者 王成,腾讯云研发工程师,Kubernetes contributor,从事数据库产品容器化.资源管控等工作,关注 Kubernetes.Go.云原生领域. 概述 进入 K8s 的世界,会发现有很多方便扩展的 Interface,包括 CSI, CNI, CRI 等,将这些接口抽象出来,是为了更好的提供开放.扩展.规范等能力. K8s 持久化存储经历了从 in-tree Volume 到 CSI Plugin(out-of-tree) 的迁移,一方面是为了将 K8s 核心主干代码与 Volu…
k8s使用rbd作后端存储 k8s里的存储方式主要有三种.分别是volume.persistent volumes和dynamic volume provisioning. volume: 就是直接挂载在pod上的组件,k8s中所有的其他存储组件都是通过volume来跟pod直接联系的.volume有个type属性,type决定了挂载的存储是什么,常见的比如:emptyDir,hostPath,nfs,rbd,以及下文要说的persistentVolumeClaim等.跟docker里面的vol…
一.Storage 1.1.Volume 官网网址:https://kubernetes.io/docs/concepts/storage/volumes/ 通过官网说明大致总结下就是这个volumes在docker中的理解就是我仅仅是通过一个volumes技术可以声名一个变量,然后可以通过这个变量将物理主机的路径和虚拟路径进行一个绑定:简单来说这就是一个持久化技术:在k8s中就可以理解是跟pod的绑定持久化:这块内容的实践在前面的yaml文件中有应用到,有兴趣的可以看前面文章.但这玩意还是有问…
目录贴:Kubernetes学习系列 一.简介 本文在“创建PV,创建PVC挂载PV,创建POD挂载PVC”这个环境的基础上,进行各种删除实验,并记录.分析各资源的状态. 二.实验脚本 实验创建了一个PV.一个PVC挂载了PV.一个POD挂载PVC,并编写了两个简单的小脚本来快速创建和删除环境.对应的脚本如下所示: 需要注意的是在创建PV时,PV并不会去检查你配置的server是否真的存在:也不会检查server上是否有一个可用的NFS服务:当然更不会检查你设置的storage大小是否真有那么大…
本节演示如何为 MySQL 数据库提供持久化存储,步骤: 1.创建 PV 和 PVC 2.部署 MySQL 3.向 MySQL 添加数据 4.模拟节点宕机故障,Kubernetes 将 MySQL 自动迁移到其他节点. 5.验证数据一致性 一.创建 PV 和 PVC Pod 通常是由应用的开发人员维护,而 Volume 则通常是由存储系统的管理员维护.开发人员要获取上面的信息,要么询问管理员,要么自己就是管理员. 这就带来了一个管理问题:应用开发人员和系统管理员的指责偶合在一起了.如果系统规模小…
1.GlusterFS部署 安装GlusterFS集群的主要目的是为k8s集群提供分布式持久化存储. GlusterFS部署使用2台服务器,服务名称与IP如下: 1 db-storagea 10.1.70.29 2 db-storageb 10.1.70.30 Ubuntu系统服务安装及启动 apt-get install glusterfs-server systemctl start glusterd systemctl enable glusterd systemctl status gl…
前文我们了解了Ceph集群cephx认证和授权相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16748149.html:今天我们来聊一聊ceph集群的RBD接口使用相关话题: RBD是ceph集群向外提供存储服务的一种接口,该接口是基于ceph底层存储集群librados api构建的接口:即RBD是构建在librados之上向外提供存储服务的:对于客户端来说RBD主要是将rados集群之上的某个存储池里的空间通过librados抽象为一块或多块…
从一个例子入手PV.PVC Kubernetes 项目引入了一组叫作 Persistent Volume Claim(PVC)和 Persistent Volume(PV)的 API 对象用于管理存储卷. 简单的说PersistentVolume (PV) 是集群中已由管理员配置的一段网络存储,是持久化存储数据卷:Persistent Volume Claim(PVC)描述的,则是 Pod 所希望使用的持久化存储的属性,比如,Volume 存储的大小.可读写权限等等. 上面的这段文字说明可能过于…
介 绍 在本文中你将学会如何使用k3s在Civo上运行Longhorn.如果你还没使用过Civo,可以到官网注册(https://www.civo.com/ )还可以申请免费的使用额度.首先,需要一个Kubernetes集群,然后我们将安装Longhorn并通过一个示例来展现如何使用它. 云原生应用程序的原理之一是它们旨在成为无状态的,因此可以直接水平扩展应用程序.然而,实际情况是除非你的网站或应用程序所占内存很小,否则你一定需要在某个地方存储这些东西. 业界巨头(如Google和Amazon)…
更多k8s内容,请关注威信公众好:新猿技术生态圈 一.数据持久化 Pod是由容器组成的,而容器宕机或停止之后,数据就随之丢了,那么这也就意味着我们在做Kubernetes集群的时候就不得不考虑存储的问题,而存储卷就是为了Pod保存数据而生的.存储卷的类型有很多, # 一般有四种:emptyDir,hostPath,NFS以及云存储(ceph, glasterfs...)等. 1.emptyDir(不能用来做数据持久化) # emptyDir:是pod调度到节点上时创建的一个空目录,当pod被删除…
目录 数据持久化-储存卷 官方文档 存储卷类型 1.emptyDir 2.hostpath 3.pv/pvc(推荐使用) nfs官方文档 安装测试nfs pv/pvc管理nfs 官方文档 pv/pvc解释 1. PV 的访问模式(accessModes) 2. PV 的回收策略(persistentVolumeReclaimPolicy) 3. PV 的状态 4.创建pv 5.pvc插件 官方文档 pvc使用pv-创建pvc pv-pvc.yaml 使用nfs 数据持久化-储存卷 我们知道,Po…
1.mysql持久化存储 [root@pserver78 0415villa]# cat latestmysql.yaml |grep -v '^#' apiVersion: v1 kind: Service metadata: name: villa-mysql01 labels: app: villa-mysql01 spec: ports: - port: protocol: TCP targetPort: selector: app: villa-mysql01 tier: mysql0…
使用glusterfs做持久化存储 我们复用kubernetes的三台主机做glusterfs存储. 以下步骤参考自:https://www.xf80.com/2017/04/21/kubernetes-glusterfs/ 安装glusterfs 我们直接在物理机上使用yum安装,如果你选择在kubernetes上安装,请参考:https://github.com/gluster/gluster-kubernetes/blob/master/docs/setup-guide.md # 先安装…
参考文档: Github project:https://github.com/heketi/heketi MANAGING VOLUMES USING HEKETI:https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.3/html/administration_guide/ch05s02 StorageClass:https://kubernetes.io/docs/concepts/storage/s…
> 为什么要做持久化存储? 持久化存储是将 Redis 存储在内存中的数据存储在硬盘中,实现数据的永久保存.我们都知道 Redis 是一个基于内存的 nosql 数据库,内存存储很容易造成数据的丢失,因为当服务器关机等一些异常情况都会导致存储在内存中的数据丢失.> 持久化存储分类 在 Redis 中,持久化存储分为两种.一种是 aof 日志追加的方式,另外一种是 rdb 数据快照的方式.> RDB持久化存储 什么是RDB持久化存储RDB持久化存储即是将redis存在内存中的数据以快照的形…
配置Ceph存储为OpenStack的后端存储 1  前期配置 Ceph官网提供的配置Ceph块存储为OpenStack后端存储的文档说明链接地址:http://docs.ceph.com/docs/master/rbd/rbd-openstack/ 1.1  注意点 (1)OpenStack的节点使用的Ceph客户端的版本应该跟Ceph节点使用的Ceph版本一致,不然可能会出现类似Functional not supported的问题,这里我使用的Ceph版本是0.94.10版本的. (2)O…
1.PV和PVC的引入 Volume 提供了非常好的数据持久化方案,不过在可管理性上还有不足. 拿前面 AWS EBS 的例子来说,要使用 Volume,Pod 必须事先知道如下信息: 当前 Volume 来自 AWS EBS. EBS Volume 已经提前创建,并且知道确切的 volume-id. Pod 通常是由应用的开发人员维护,而 Volume 则通常是由存储系统的管理员维护.开发人员要获得上面的信息: 要么询问管理员. 要么自己就是管理员. 这样就带来一个管理上的问题:应用开发人员和…
14-使用glusterfs做持久化存储 https://www.cnblogs.com/guigujun/p/8366558.html 使用glusterfs做持久化存储 我们复用kubernetes的三台主机做glusterfs存储. 以下步骤参考自:https://www.xf80.com/2017/04/21/kubernetes-glusterfs/ 安装glusterfs 我们直接在物理机上使用yum安装,如果你选择在kubernetes上安装,请参考:https://github.…