写点什么

华为云的 Kubernetes 实践之路

  • 2018-03-28
  • 本文字数:3153 字

    阅读完需:约 10 分钟

华为与 Kubernetes 的渊源颇深,早在 Kubernetes 刚开源的时候就以社区创始成员及白金会员的身份加入其中。目前拥有 1 个 Steering Committee 席位和 5 个 Maintainer 席位。

1.1 华为自身基于 Kubernetes的实践

加入初期,作为全球最大的电信设备制造商之一,华为内部 IT 运维着遍布全球的八个数据中心,在 100K + VM 中运行 800 多个应用程序,使用虚拟机封装应用程序,但每次启动虚拟机都花费了大量的时间,这给管理及部署基于虚机应用程序的高成本和低效率带来了严峻的挑战。因此华为决定利用 Kubenetes 技术对自身 IT 系统进行容器化改造。

与此同时,华为通过参与和贡献 Kubernetes 项目,为自身带来了在规划、网络、多集群联合、应用支持、安全、可扩展性和政策执行等方面的良好设计、代码和文档管理,以及在服务治理方面的收益。通过自身的容器化改造实践,在受益的同时又将自身遇到的实际问题不断的贡献给社区,与社区成员一同推动 Kubernetes 的发展。

比如,在华为内部 IT 系统的实践历程中,业务的全球化属性给平台带来了混合云、跨地域、多 DC 部署方面的需求,这与社区发展多集群联邦的理念不谋而合。因此,华为在集群联邦项目成立之初就积极参与其中,主导了架构设计以及联邦级别的无状态应用、短任务支持、集群间策略调度、应用跨集群自动伸缩等关键特性开发。目前集群联邦已在社区正式孵化为独立子项目。

另一个例子是早期的 K8S 并不支持亲和反亲和等高级调度策略,使得大型传统应用改造上云十分困难。在华为公司对应用做微服务拆分和容器化改造的过程中,最典型的问题就是拆分后的组件间如何高效地通信。在传统方案中,往往有多个组件的业务进程部署在同个虚机上,组件间交互可以通过进程间通信来实现。应用改造后,组件变成了 k8S 中的 Pod,被相对独立地调度和拉起,通过容器网络互相通信。当一个复杂应用的各个组件十分分散时,网络通信的时延会大幅增加。一方面,针对这个问题,华为在 k8S 社区的主导实现了节点亲和反亲和调度、应用间亲和反亲和调度、Taints tolerations 等高级调度机制。通过给 Pod 配置高级调度策略干预应用组件的分布,配合容器网络在路由策略上的优化,访问时延问题得到了显著的改善。

另一方面,在集群规模和性能方面,华为也做了很多探索与实践。面对大规模场景下海量 Service 的管理性能问题,华为设计实现并向社区贡献了使用 IPVS 管理 service 路由规则的方案,将 k8S 对 service 的管理规模从上千提升到了数万的级别。

1.2 华为云应用服务与 Kubernetes

华为云应用服务产品均围绕着“容器”为中心构建,致力于帮助客户容器化的应用在云上高效地开发、交付与运维,并保障应用运行时的高性能、高可靠、高弹性。目前,华为云应用服务产品以基于 K8S 的华为云容器引擎(CCE)为核心,协同补齐了完整的应用开发、交付与运维流程,为客户提供完整的一站式云上应用生命周期管理方案。

华为云应用服务大体上可以分为三大类:

第一类围绕着 Kubernetes 核心功能,也就是容器编排与调度,与下层的基础设施层包括计算、网络、存储,以及水平的权限控制、网络防护、镜像仓库等服务进行整合形成一个容器化基础设施平台,并向上对接到集群管理、多 DC/AZ、多区域管理实现云上的水平弹性。

通常大家所提到的“容器服务”或“容器云”大部分都是指这一类服务。华为云所提供的云容器引擎(CCE)、云容器实例(CCI)归属于此类。两者均基于 Kubernetes 构建,但技术路线偏重点有所区分。

CCE 的服务形态是用户专属的 Kubernetes 集群(Kubernetes as a Service),用户能够控制整个 Kubernetes 集群的资源与应用,并且可以调用完整的 Kubernetes API,以及安装各类 Addon 以及自定义扩展比如调度器、工作负载控制器等;而 CCI 的服务形态是无服务器容器(Serverless Container),用户无需感知 Kubernetes 集群,通常只需要调用 Kubernetes Workload API 进行应用的管理即可,而把资源全部交由华为云进行自动调度与管理。

因此,通常 CCE 适合业务半托管的场景,即用户自身有一定运维能力,且业务场景需要用户手动做一些管控比如资源规划、弹性伸缩,甚至自定义一些平台特性以适配业务;相对而言 CCI 适合业务全托管的场景,即用户只需关注以容器形态所交付的应用本身,无需关注资源管控,甚至无需关注 Kubernetes 的相关原理。

第二类服务围绕着 Kubernetes 标准化接口以及结合具体场景的最佳实践来构建完整的应用开发、交付与运维流程,实现云上的应用全生命周期管理。

华为云在开发阶段提供微服务开发框架帮助用户在产品开发中落地微服务架构实践,在交付阶段提供“从代码到容器镜像”的自动镜像构建服务,支持一键式部署到 Kubernetes 平台之上,实现持续交付,而最终业务上线运行之后的运维阶段除了基础的容器监控、日志、告警系统之外,同时提供了微服务治理引擎,以及应用性能管理用于故障在线辅助与自动定位。

具体举例而言:

  • 华为云微服务引擎(CSE)提供了具备升降级、容错、熔断等完整服务治理能力的微服务框架,兼容 Spring Cloud、Dubbo 等开源接口,并与 CCE 深度整合,支持 ServiceMesh,未来计划进一步与 CNCF 基金会各微服务相关项目,尤其是 Istio 生态相结合,提供最适合在 K8S 之上运行业务所使用的微服务开发框架
  • 华为云应用编排服务(AOS)提供了以应用为中心的高层编排引擎,能够将 K8S 上运行的各种工作负载、各类资源对象整合管理,并提供了完善的版本与生命周期管理机制,便于客户以更高层的“应用”为对象进行日常交付与运维管理
  • 华为云应用性能管理(APM)提供了丰富的各类运维工具,除了基础的监控、日志与告警,进一步面向故障定位与分析场景提供了应用全局性能拓扑展示与调用链跟踪等高级特性,使得运维人员能够及时了解应用健康状态并进行相关处理。

第三类则是直接在 Kubernetes 之上身体力行地构建一些典型服务化应用,针对某些业务场景提供更易用、更高效的服务,使得客户更聚焦自身业务逻辑。

比如:

  • 以分布式数据库(DDM)、分布式缓存(DCS)、分布式消息(DMS)为代表的云化中间件服务,供应用业务逻辑所调用,辅助客户应用的容器化、无状态化、微服务化开发或改造;
  • 以 CCE/CCI 为基础设施层所构建的 Serverless Computing(FunctionStage)服务,面向 Event-Driven 的典型业务流场景简化应用代码逻辑,并基于容器热启动、各类主流语言运行时的快速启停优化,实现更高效、更低成本的实时计算;
  • 区块链服务 BCS 则提供了主流的 Hyperledger 开源框架,并基于 Kubernetes 的高性能实现 3 分钟一键上链,2000+TPS 的并发区块处理能力,可满足联盟链与私有链的各类业务场景诉求,使客户免运维地使用区块链构建自有业务框架。

1.3 未来:紧随社区版本 持续优势创新

纵观华为在 Kubernetes 上的创新可以总结为优势创新、场景创新、技术创新三个层面,优势创新是围绕华为固有的自身强势领域如网络、硬件进行与容器技术的结合运用。场景创新则是聚焦在不同领域的客户需求如游戏、电商、AI 等,基于客户的计算需求进行解决方案的适配。技术创新,以无服务器容器为例,在 Serverless 的云服务趋势下,华为云提供更加便捷,更加全新理念的容器服务方式。

目前看来,容器服务并没有统一的服务标准,并没有说哪一种创新可以一招解决所有企业云上容器化的痛点,这需要根据客户的业务场景进行量身匹配,而华为云的全栈容器服务的实践案例也充分说明了这一点。众多不同的容器服务在上线不久已应用在众多不同领域,裸金属容器已成功运用在一部分游戏客户中,帮助其进行测试环境,及高峰时间的流量应对。Windows 容器成功运用在传统 IT 系统的容器化改造,而无服务器容器则可以帮助更多缺乏 Kubernetes 技术投入的公司快速上手享受容器化带来的益处。

这也就是华为云对于 Kubernetes 的一些探索和思考,未来还会有更多基于容器的创新,一切才刚刚开始。

2018-03-28 18:053559
用户头像

发布了 31 篇内容, 共 54038 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

10K Stars 成就达成,StarRocks 开启下一个里程碑!

StarRocks

数据库 AI OLAP StarRocks

最新开源 TEN VAD 与 Turn Detection 让 Voice Agent 对话更拟人 | 社区来稿

声网

RAG创始人关于RAG Agent的10个思考(上)

Bruce Talk

AI RAG知识库

腾讯云COS MCP Server + CodeBuddy ,让你的idea 不止停留在想象中...

六月的雨在InfoQ

MCP MCP Server MCP头号玩家

迁徙:微信鸿蒙版的长征

脑极体

AI

我这是“小作坊”,没那么多时间为爱奉献!

程序员郭顺发

StarRocks MCP Server 开源发布:为 AI 应用提供强大分析中枢

StarRocks

数据分析 OLAP StarRocks MCP Server

StarRocks Community Monthly Newsletter (Apr)

StarRocks

数据库 数据分析 存算分离 StarRocks 数据查询

可观测性方案怎么选?SelectDB vs Elasticsearch vs ClickHouse

SelectDB

elastic 可观测性 实时数仓 Clickhouse 数据库 大数据

打造了一个未来感十足的图书管理 App 个人页面

繁依Fanyi

根据数据表快速生成原型图的工具

执于业务

TEN 开源超轻量 VAD 和全双工对话轮次检测模型;Stability AI 发布全新端侧音频生成模型,无版权风险丨日报

声网

MoE大模型迎来“原生战友”:昇腾超节点重构AI基础设施

Alter

AI 大模型 昇腾AI MoE

时序数据库、实时数据库与实时数仓:如何为实时数据场景选择最佳解决方案?

镜舟科技

数据分析 数据处理 时序数据库 实时数据库 实时数据仓库

《算法导论(第4版)》阅读笔记:p83-p85

codists

算法

等保测评2025 版新报告模板,是以哪个时间节点为准?

黑龙江陆陆信息测评部

从China P&E 2025 看闪迪创作者系列如何提升生产力

极客天地

全平台开源即时通讯IM聊天框架MobileIMSDK的服务端开发指南,支持鸿蒙NEXT

JackJiang

网络编程 即时通讯 IM

ArkUI-X跨平台框架接入指南

龙儿筝

为什么在中国开源软件赚不到钱?

雅菲奥朗

#开源

Nagarro发布多项财年业绩

财见

RAG检索实践:多路检索(PostgreSQL环境准备)

程序员架构进阶

全文检索 5月日更 大模型 PgSQL rag

华为云超节点创新算力基础设施,推动千行万业AI应用开发落地

轶天下事

新一代SRE:AI、可观测与未来丨暨2025第三届中国SRE大会,邀您共赴科技盛宴!

雅菲奥朗

AARRR模型是什么,包括哪些阶段?一文弄懂PM必备的思维模型!

职场工具箱

人工智能 产品 AI 产品经理 AIGC

《算法导论(第4版)》阅读笔记:p76-p81

codists

算法

Amazon Q 从入门到精通 – 测试与重构

亚马逊云科技 (Amazon Web Services)

《算法导论(第4版)》阅读笔记:p82-p82

codists

算法

DevEco重大更新快来体验吧

龙儿筝

RAG创始人关于RAG Agent的10个思考(下)

Bruce Talk

AI RAG知识库

Uniapp开发鸿蒙应用时如何运行和调试项目

幽蓝计划

华为云的Kubernetes实践之路_语言 & 开发_华为_InfoQ精选文章