运维视角聊聊云端利器OpenStack、K8S

网友投稿 1515 2022-10-03

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

运维视角聊聊云端利器OpenStack、K8S

去年公司做部门调整,把云计算和大数据两个部门划分到一个产品线了,之前听到过OpenStack,但一直没真正去了解过;由于云产品不归大数据部门维护,也没太多去深入了,便了解了一些基本概念。

随着对客户大数据平台的维护,有很多客户对平台资源的利用率不够科学。比如:明明业务数据量不大(几百G),却配置了过多的磁盘(单机10T);业务本身需要的内存不大(2G),却配置的过大(>10G);更有甚者业务代码放到平台里面去跑,去和平台进程争夺内存资源导致平台服务挂掉。我逐渐感觉到了单纯依靠大数据平台,会造成资源的浪费。

这次疫情使得大家无法实地办公,只能云端作业,云桌面再次证明了上云的重要性,于是促使我对OpenStack、K8S再次展开了探讨。

云是什么?计算机讲的云可以类比现实中天空飘的云对资源循环利用的过程,是一个资源管理的抽象。而OpenStack号称是云操作系统。

首先我们了解下使用云的好处,下图是一个物理多机器部署。

假如有100台机器,A部门要去10台、B部门要去25台、C部门45台、D部门要20台。对于每一个部门都要单独部署一套集群,我们可以设想一个场景:在使用中C部门发现需要30台就能满足需求,而A部门还需要10台才能满足需求,那么此时的处理情况应该是从C部门集群里剔除10台给A部门,但如果这些数据都已经分布到了集群每个节点,若盲目剔除,势必导致C部门数据的不完整,并且从主机剔除后还涉及到机房网络的调整等额外工作。但是若这些集群都是部署在云端,又会出现什么情况呢?

云端说的更直白一点就是一堆虚拟机,我们只需要在云端做一个数据迁移或者虚拟机迁移就能完成上述需求。我们既不用去机房也不用担心数据的问题了。但实际中云能做的事情远不止这些,也是很复杂的,其最大的特点是资源调度的灵活性。

简要介绍下OpenStack

OpenStack主要有Horizon、KeyStone、Glance、Nova、Cinder、Neutron以及Sahara等。

OpenStack其以模块化管理,模块提供可插拔的自定义后端开发而迅速赢得开发者青睐。

如上图,Nova提供driver接口,可以对接不同的Hypervisor,Cinder提供Driver接口,对接不同的后端存储,Neutron提供的Driver接口可供用户自定义网络逻辑。关于每个服务模块的开发方法,这里不做介绍。

如何部署大数据平台到云端呢?

提起大数据云端部署,必然使我们联想到Sahara

Sahara主要由sahara-api 和sahara-engine组成,其对接大数据平台原理很简单。

1、接收用户请求后通过鉴权模块和keystone进行交换,鉴权和授权,。

2、通过ProvisioningEngine和Nova, Heat, Cinder、Glance通信产生相应个数和规格的虚机。

3、调用用户自定义的插件代码来完成集群部署。该部分包括:

a. 需要实现Sahara.plugins.provisioning.ProvisioningPluginBase所定义的接口,该部分代码定义在虚拟机上服务配置和启动Hadoop服务。现官方支持插件有Apache的Ambari、Cloudera 、Hadoop、Spark等。

b. 用户制作集群镜像并上传到OpenStack。

c. 用户编写集群Node Group Templates, Cluster Templates 。

Sahara开发文档:https://docs.openstack.org/sahara/latest/

平台上云,业务也要上云,促使业务服务转向微服务化

数据平台部署后,就要考虑业务服务问题。

随着业务和客户需求的急速增长,之前的服务集中方法对QPS难以保证,且市场急需业务快速开发上线,服务拆分显得越发重要,使用容器解决已成为主流趋势。

容器核心要素是namespace、Cgroup。通俗讲namespace就是每个进程只能看到当前容器内的进程。Cgroup 对内存、CPU、磁盘io等的资源限制,杜绝了资源冲突的发生。

但是每个业务都放到了容器里,造成业务管理复杂和维护成本提高。催发了K8s的诞生,

k8s是Google推出的容器编排工具,极大方便了容器的管理与维护。K8s集群master节点包括schedule、apiserver、controller-manger和etcd, worker节点主要由kubelet、kube proxy等。k8s用户视角包括pod 、endpoint、server、deployment、replicationcontrol。为了让用户专注业务开发,Redhat推出了OpenShift。至于k8s生态的Operator、OpenShift、ServiceMesh内容,限于篇幅有限,这里不再介绍。

至于业务有没有必要上云和微服务化处理,还得视具体情况而定,各有利弊,要做好权衡再定论。

以上仅是个人观点,如有异议还请指正。

上一篇:聊聊数据库:SQL运维~存储引擎与权限
下一篇:玩转容器镜像-用Harbor管理和运维镜像仓库
相关文章

 发表评论

暂时没有评论,来抢沙发吧~