利用Kubernetes与SRRS打造云原生基础架构

2023-01-12 17:21:34 浏览数 (1)

云原生,“云”表示应用程序位于云中,而不是传统的数据中心;“原生”表示应用程序从设计之初即考虑到云的环境,原生为云而设计,在云上以最佳姿势运行,充分利用和发挥云平台的弹性 分布式优势。云原生应用也就是面向“云”而设计的应用,在使用云原生技术后,开发者无需考虑底层的技术实现,可以充分发挥云平台的弹性和分布式优势,实现快速部署、按需伸缩、不停机交付等。

云原生应用程序架构要求底层基础架构和平台具有可编程性、弹性、复原能力、模块化能力。可编程性:基础结构支持通过声明性 API 和策略进行预配和管理。弹性:可以使用业务流程协调程序以自动化和策略驱动的方式动态扩展和缩减基础结构资源。复原能力:基础结构服务是松散耦合的单元,可以独立运行以提供容错能力。模块化:基础架构为服务的独立打包(如容器或无服务器功能)提供抽象。

部署云原生基础架构的方法有很多,包括 Amazon ECS 或 HashiCorp Nomad 等。然而,大规模云原生基础架构通常会基于 Kubernetes。Kubernetes也称为K8S,其中8是代表中间“ubernete”的8个字符,是Google在2014年开源的一个容器编排引擎,用于自动化容器化应用程序的部署、规划、扩展和管理,它将组成应用程序的容器分组为逻辑单元,以便于管理和发现,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效,很多细节都不需要运维人员去进行复杂的手工配置和处理。Kubernetes 完全实现了上述四个核心属性:Kubernetes 是可编程的,Kubernetes 对象模型上的所有操作 都通过集群控制平面中的 API 服务器执行。Kubernetes 通过横向扩展方法支持弹性。可以通过添加和删除 Pod 和/或节点的实例来增加和减少服务的容量。Kubernetes 通过部署提供服务的容器的多个实例来保持复原能力。如果 Pod 由于某种原因失败,Kubernetes 将尝试自动重启 Pod。Kubernetes 采用模块化设计,提供基于容器部署服务队列的抽象,并支持基于自定义资源定义 (CRD) 的 Kubernetes 软件扩展。

Kubernetes 是开源软件,可在多种类型的基础设施上运行,包括基于 VMware、Microsoft Hyper-V 或基于内核的虚拟机 (KVM) 等。也包括没有虚拟机管理程序的服务器,或由 IaaS 公共云平台托管的计算实例上的服务器。 Kubernetes 还作为托管服务由第三方供应商提供。部署 Kubernetes 问题之一,是建立集群以运行生产工作负载的复杂性。Kubernetes 集群的生产级操作需要许多组件 ,用户通常没有足够的技术能力;问题之二,是尽管 Kubernetes可以在多种类型的基础架构上运行,但多架构同时存在导致云原生平台的底层基础设施(即支持 Kubernetes 集群的计算、存储和网络资源)过于复杂,不方便管理;问题之三,是如果用户为了避免上述问题,使用单一的基础设施或直接购买 Kubernetes 的第三方商用版本,则容易被供应商绑定,减少自主性。

存储资源盘活系统(Storage Resource Reutilization System, SRRS) 可以在存储层面解决上述 Kubernetes 部署过程中出现的问题。

SRRS 是一款纯用户态的绿色软件,只有150MB左右的安装包,不需要ROOT权限就可以安装在任何Linux操作系统上,不独占硬盘、操作系统,以2GB内存把各服务器中分散的磁盘整合成高性能的存储资源池,通过分布式双控制器架构保证了低延迟、高可用、易拓展;支持x86、ARM、龙芯等异构、非对称服务器混合部署,通过功能全面完善的控制台、命令行与API来统一调度管理所有存储设备;通过强大的兼容性和硬件异构性充分利用全部存储资源。

SRRS 与 Kubernetes一样,可在多种类型的基础设施上运行,向上提供标准的 iSCSI 接口,完全适配 Kubernetes 的 容器存储接口 CSI 。SRRS 通过命令行、WEB页面、API管理统一的虚拟资源池,通过三个命令行 即可完成部署,不需要用户拥有太高的技术能力。SRRS 可基于异构硬件进行部署,兼容x86、ARM、龙芯等平台设备,具备绿色用户态的特性,可以让用户不关注复杂的基础设施,并且不依赖任何单一供应商。

0 人点赞