加入收藏 | 设为首页 | 会员中心 | 我要投稿 信阳站长网 (https://www.0376zz.cn/)- 智能营销、云手机、数据工坊、云防火墙、大数据!
当前位置: 首页 > 云计算 > 正文

​如何搭建云原生大数据平台的K8s底座

发布时间:2022-08-03 12:09:59 所属栏目:云计算 来源:互联网
导读:伴随着数字化转型脚步的加快,大数据已成为企业经营管理的主要手段之一,越来越多的行业也选择通过大数据来实现业绩增长。今年年初,CNCF中国区总监陈泽辉在2022云原生超级英雄会上表示,Kubernetes (K8s)已无处不在,越来越多的人在使用云原生和Kubernetes
   伴随着数字化转型脚步的加快,大数据已成为企业经营管理的主要手段之一,越来越多的行业也选择通过大数据来实现业绩增长。今年年初,CNCF中国区总监陈泽辉在2022云原生超级英雄会上表示,Kubernetes (K8s)已无处不在,越来越多的人在使用云原生和Kubernetes。数据时代,企业如何让云原生大数据平台借力K8s以发挥最大价值,今天我们就跟着智领云科技云平台研发经理Jason一起来深入了解一下。
 
 
 
  背景介绍
  什么叫云原生架构
  并不是运行在云主机上的程序或者容器化的程序就是云原生程序。
 
  过去十年,随着云计算的发展,云原生技术架构逐步被更多的科技企业采纳和应用,其概念可归纳为以下几点:
 
  Containerization:可运行代码必须容器化发布
  Dynamic management:动态配置服务,按使用量付费
  Micro-service:使用类似于K8s的云操作系统面向资源池发布和运维微服务,而不是自己面向节点操作
  Orchestration:  使用底层云平台操作系统的分布式管理体系,而不是自己独立管理
  Automation:  大部分运维操作由代码完成,而不是手工操作
  云原生架构的优势
  使用云原生架构带来的好处很多,其优势归纳起来大概可以有以下几点:多租户、按需扩容、高效迭代、降低成本,以及安全性和合规性。
 
 
 
  智领云联合创始人 & CEO彭锋博士曾以Twitter公司为例,强调云原生架构的优势。
 
  “Twitter从2011年开始建设自己内部的私有云平台,我们看到的是业务开发效率数量级的增长,同时避免了部门墙,避免了数据孤岛和应用孤岛(因为都必须遵守云平台和其上的大数据平台的发布规范)。从80台机器的Hadoop集群,到8000台机器的全局数据平台,在统一集群中不断扩展数据能力矩阵,支撑业务运营。很多数据能力建设的工作,也因为应用的云原生化成为可能。”
 
  对比企业在使用传统大数据平台时遇到的困难和难点,云原生架构的优势便能够更好地凸显出来。那么,云原生架构又是如何解决这些难点,成为如今大数据平台搭建的市场趋势呢?
 
  传统大数据平台的难点,主要体现在其组件安装运维复杂:
 
  每个大数据组件都有自己的安装流程,系统要求,第三方库支持要求
  独立的分布式管理,高可用,容错,日志,授权,鉴权机制
  难以实现对于多租户,资源隔离,审计,计费的支持
  工具体系复杂,无法支持CI/CD,系统测试,质量控制
  无法实现大数据组件及应用的混合调度,资源使用率低
  因此,数据应用的开发流程及管理散布在各个系统组件中,缺乏统一全局的管理,开发运营效率低。
 
  传统大数据平台存在的问题,已经逐渐无法支撑数据驱动业务运营更为丰富的需求,所以呈现出来的市场趋势就是大数据平台的云原生化。具体来看:
 
  K8s基本已成为云平台的标配,我们只需要适配K8s即可
  新的大数据组件更多的以云原生的方式发布
  Hadoop会被云原生存储+资源调度取代,现有Hadoop集群的工作负载需要迁移
  原始的大数据平台已经建设完毕,DataOps的需求出现
  云原生应用的普及,数据源逐渐标准化,在线集成处理成为可能
  数字化转型需要低门槛,低代码的自助型平台
  规划设计
  接下来,我们要讨论的是怎样规划设计这样的云平台系统,这部分可以从基础设施层(IaaS)、平台服务层(PaaS),以及应用交付层来看,而每个层面都需要结合当前的业务规模和需求来权衡一些问题,比如:
 
  IaaS:基础设施管理成本的权衡
  PaaS:K8s的版本管理、监控告警日志集成
  应用交付:如何隔离容器编排层的复杂概念,专注于应用开发
  我们的目标是要去交付一个K8s云平台,需求可以先拆分为以下三大方面:
 
  首先 IaaS 层的建设,我们要决定是托管在公有云,还是自建私有云,或者是最复杂的混合云架构;
  其次 PaaS 层的建设,我们要决定是用原生的K8s,还是发型版的K8s(各公有云厂商的K8s服务,或者像Kubesphere、Rancher、OpenShift这些面向私有发布的发行版等);
  最后是应用交付的体系,我们的目的不是为了搭建K8s而搭建,交付了K8s平台之后,更重要的是如何快速、灵活地将业务系统“搬”到K8s平台上来,并在未来能够充分利用好K8s容器编排的各种特性,例如容器运行时/网络/存储接口、故障自动迁移、弹性伸缩、租户控制等。
  针对以上三个方面的设计规划,其现状及问题包括:
 
  (1) IaaS层:最主要的是管理成本的权衡:公有云搭建最快,具备公有云产品使用的能力即可,管理成本相对较低,但产品价格很贵;私有云需要有虚拟化平台建设及运维的能力,管理成本相对较高;混合云前两者的能力都需要,还需要具备网络基础设施建设的能力,管理成本最高。
 
  (2) PaaS层:官方开源版本无任何定制,但要构建一套完整的生态系统,需要自行搭建例如仓库、监控、报警、日志、负载均衡等额外的系统,技术选型可控但对团队能力要求高;发行版一般提供一套比较完备的生态系统,但技术选型往往不可控,容易被绑定,另外难以满足自定义需求的时候,还是需要自行建设;除此之外,K8s的版本发布非常快,如果想用新的特性或者修复bug,需要跟上新版本,但底层平台升级往往是非常吃力且容易出事故的。
 
  (3) 应用交付:K8s的优势是容器化编排能力很强,一开始看上去像海面上一座优美的小岛;劣势是它的系统架构、概念原理、管理使用非常复杂,等深入了解了之后才发现小岛原来只是露出海面的冰山一角;对于应用开发者来说,平台工程师应该把容器编排层的能力抽象隔离并封装简化,让上层用户专注于应用开发,不需要承受整个冰山的重量。
 
  实现路径
  结合规划设计各层面的具体实践,接下来要讲一讲我们自己的实现路径。首先,在基础设施层和平台服务层,面向公有云场景,我们的实践是基于阿里云容器服务ACK去构建在公有云场景的K8s平台。
 
  ACK 整合了阿里云虚拟化、存储、网络和安全能力,提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。
 
  ACK当前支持的版本为:1.22.3 和 1.20.11,仅发布Kubernetes双数号的大版本,版本支持策略如下:
 
  集群创建:ACK支持Kubernetes两个大版本的创建,例如v1.16、v1.18。当新版本Kubernetes发布时,较老的一个版本将不再开放创建功能。
  升级和运维保障:ACK保障最近的三个Kubernetes大版本的稳定运行,同时支持最新版本往前两个大版本的升级功能,例如当前最新版本为v1.20,则ACK支持v1.18、v1.16的升级功能。
  工单答疑:ACK仅提供最近的三个Kubernetes大版本的技术支持。
  那么,在私有云场景中,我们的建设实践是采用了VMware的一套技术架构,物理机采用DELL的PowerEdge系列。并在物理机上部署VMware ESXi,通过VMware vCenter Server将多台物理机资源组成资源池,组成虚拟化管理平台。
 
  
 
  除此之外,在私有发布场景中,还需要去部署K8s的整个系统,我们选用了青云的KubeKey。
 
  这款开源K8s安装器项目,可以轻松、高效、灵活地单独或整体安装 Kubernetes 和 KubeSphere。
 
  支持的Linux 发行版本:
 
  Ubuntu 16.04, 18.04, 20.04
  Debian Buster, Stretch
  CentOS/RHEL 7
  SUSE Linux Enterprise Server 15
  支持的Kubernetes 版本:
 
  v1.17: v1.17.9
  v1.18: v1.18.6
  v1.19: v1.19.8
  v1.20: v1.20.6
  v1.21: v1.21.5 (default)
  v1.22: v1.22.1
  
 
  使用起来也比较简单,具体操作如下:
 
  创建集群:
  
  ./kk create cluster -f config.yaml
  1.
  添加节点:
  
  ./kk add nodes -f config.yaml
  1.
  删除节点:
  
  ./kk delete node <nodeName> -f config.yaml
  1.
  删除集群:
  
  ./kk create cluster -f config.yaml
  1.
  
 
  在应用交付层,我们的实践是基于KubeVela这一引擎来做平台建设。
 
  KubeVela 作为一个开箱即用的现代化应用交付与管理平台,使得应用在面向混合云环境中的交付更简单、快捷。使用 KubeVela 的软件开发团队,可以按需使用云原生能力构建应用。随着团队规模的发展、业务场景的变化扩展其功能,一次构建,随处运行。
 
    
 
  KubeVela 围绕着云原生应用交付和管理场景展开,背后的应用交付模型是 Open Application Model,简称 OAM ,其核心是将应用部署所需的所有组件和各项运维动作,描述为一个统一的、与基础设施无关的“部署计划”,进而实现在混合环境中标准化和高效率的应用交付。
 
  

(编辑:信阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读