一、Ceph的起源Ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合,为物理机及虚拟机提供块存储,对象存储与文件存储。由于AWS的对象存储S3与OpenStack的对象存储swift并不兼容,而Ceph的对象存储RADOSGW可以同时兼容二者,起到桥接作用。二、Ceph的特点1.接口类型说Ceph是一个统一的分布式存储系统,是因为Ceph底层使用R...

  mGwyuvHyMgKE   2023年11月02日   109   0   0

一、背景介绍 出于技能储备与技术的热爱,近期开始学习K8S,本系列文章算是个人学习过程中的笔记,本系列文章K8S版本为v1.23.17,操作系统版本为ubuntu22.0.4。需要强调一点:所有的视频和资料都有滞后性,由于K8S更新很快,所以命令与部署时用到的资源地址经常发生变动,这也是对照老手册部署失败的原因,最好的方式还是github上看,闲言少叙,步入正题。 二、K8S部署方式介绍 K8S部署方式有两种:二进制部署和使用K8S推荐的kubeadm部署,为了便于上手,本次采用kubeadm方式进行部署。 三、部署前准备工作 本次采用3节点部署,分别是1个master节点和3个node节点...

  mGwyuvHyMgKE   2023年11月02日   47   0   0

一、背景介绍 Ceph是一个统一的分布式存储系统,可以对外提供块存储、对象存储和文件存储。其中RBD(RADOSBlockDevice)是Ceph对外的三大组件之一,也是Ceph最稳定的接口,应用访问rados应用有两种途径(如下图): librbd用户态接口,librados.so动态链接库充当客户端接入RADOS集群,可以在用户态访问RBD接口 krbd内核态,通过rbd命令,可以将rbd设备映射为本地的块设备, 相较于用户态的librbd.so,生产环境中较常使用的是内核态的rbd.ko进行连接,本文介绍物理节点如何使用rbd进行挂载等操作。 二、操作步骤 1.客户端环境检查 首先...

  mGwyuvHyMgKE   2023年11月02日   76   0   0

一、背景介绍 客户端将一个数据存储到Ceph集群上,会经过两次映射,object-->PG,PG-->OSD,其中object-->PG是通过一致性哈希计算得出结果,PG-->OSD则是用到了crush算法,而ceph本身是具备冗余和故障自恢复的,该功能的实现一离不开crush算法,一句话,crush算法是将特定条件作为输入,将存储位置作为输出,如下: 输入:存储对象标识(x),crushmap,placementrule 输出:一组OSD集合 客户在存储数据时,自己提供待存储对象的标识,然后通过monitor获取到crushmap和placementrule,在本...

  mGwyuvHyMgKE   2023年11月02日   41   0   0

一、背景介绍 pod作为k8s的核心资源,可以说一切其他资源都是为pod而服务,给他提供了诸如网络、存储、监控功能,所以了解pod的运行机制与逻辑对掌握张个k8s集群显得非常重要,本文通过pod的生命周期,管理接口等方面介绍pod的各种特性,为了降低篇幅量,本文尽量减少命令演示,多采用语言描述。 二、应用容器与pod资源 1.linux名称空间 在开始之前,需要先说明下名称空间的概念,名称空间可以看成一个作用域,不同的名称空间中的资源相互之间隔离,linux系统本身包含了6中不同的名称空间,如下表: USER 用户 IPC internalprocedurecall,进程间通...

  mGwyuvHyMgKE   2023年11月02日   53   0   0

一、背景介绍 以docker为代表的运行时容器,都支持将数据存储在容器自身之外的地方实现数据持久化,存储位置可以是承载容器的物理机本地磁盘,也可以是网络上的其他存储位置。类似的,K8S也支持将短生命周期的容器数据进行持久化存储,但存储卷绑定的对象是pod而非容器,pod中的所有容器共享绑定的持久化存储卷。 二、存储卷种类与概述 1.emptyDir存储卷 emptydir作为一种临时目录,生命周期随着pod的结束而结束,尽管Pod中的容器挂载emptyDir卷的路径可能相同也可能不同,这些容器都可以读写emptyDir卷中相同的文件。当Pod因为某些原因被从节点上删除时,emptyDir卷中的...

  mGwyuvHyMgKE   2023年11月02日   44   0   0

一、背景介绍 我们知道程序本身是被装载进内存的一段代码,类似于系统上的cat或者ls程序,就是被装载进内存以实现特定的功能,而简单的程序往往没有什么复杂的定制,越是复杂的应用(如nginx等)根据环境与应用场景的不同,需要进行个性化的定制,大多数应用都可以通过命令行,选项,参数,环境变量和配置文件传递,通常的传递方式有以下几种: 创建Pod时设置命令及参数 使用环境变量来设置参数 引用configMap设置参数 二、应用配置存储 1.创建Pod时设置命令及参数 创建Pod时,可以为其下的容器设置启动时要执行的命令及其参数。如果要设置命令,就填写在配置文件的command字段下,如果要设置命...

  mGwyuvHyMgKE   2023年11月02日   61   0   0

一、背景介绍 前面介绍的k8s中的pv存储卷与cm存储卷,k8s中还有2中特殊的存储卷:secret和downwardAPI。其作用分别是用来存放敏感信息和将pod中的信息暴漏给pod中运行的代码,这也是k8s中经常会用到的两个存储卷,下面就这两个存储卷展开详细说明。 二、Secret存储卷 尽管configMap资源也可以存放类似密码等敏感信息,但是它是将其存放在etcd中,这种持久化存储存在一定的安全隐患。所以在生还环境中,使用secret卷用来给Pod传递例如密码等敏感信息。可以将Secret存储在KubernetesAPI服务器上,然后以文件的形式挂载到Pod中,无需直接与Kubern...

  mGwyuvHyMgKE   2023年11月02日   64   0   0
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~