Kubernetes作为云原生计算的基础项目,已经在开发者和企业中获得广泛的支持。然而其自身复杂性和陡峭的学习曲线依然让人望而生畏。在 CNCF 2020年度调研报告中,在Kubernetes技术落地过程中面临最大的挑战就是复杂性。
IBM大型机之父 Fred Brooks 著名的论文No Silver Bullet[1],软件系统中的复杂性可以分为本质复杂性 (essential complexity) 和附属复杂性 (accidental complexity) 。本质复杂性是构建系统过程中不可避免的复杂性。附属复杂性则是任何非必要的复杂性,比如由于设计失误或者工具不当等引入的复杂性。附属复杂性会随着工具的改善而逐渐解决,而本质性的困难难以解决。
Kubernetes的本质复杂性与附属复杂性到底有什么?我们应该如何应对?
分布式系统的复杂性
在上世纪90年代,Sun的几位工程师提出了分布式计算的八个谬误[2],这也解释了为什么构建可靠的分布式系统是一项艰巨的工程挑战。
作为分布式集群管理系统,Kubernetes 自身要面临着众多的复杂性,比如,节点宕机,网络抖动、组件版本不一致等等。此外 K8s 还要能够用合理的抽象向上层应用屏蔽底层的不确定性、差异性和复杂性。
资源调度的复杂性
如何高效地利用计算资源,降低计算成本是资源调度的重要目标。
Kubernetes作为一个分布式集群管理系统,它的一个重要目标是:将适合的资源分配给适合的应用,满足对应用的QoS要求和获得最优的资源使用效率。
然而,分布式系统的资源调度有着非常高的复杂性。主要挑战包括:
调度系统需要在多样化的资源和多样化的约束之间进行动态决策,整体挑战很高。而且随着时间推移,集群中逐渐出现负载不均衡的现象,资源热点会导致。如何持续调整集群负载
基础设施环境的多样性
不同的环境,比如,线下数据中心与云,不同的云供应商之间,他们在基础设施能力上有着很多差异。类似单机操作系统要能支持不同的硬件设备,一个分布式集群系统要向下屏蔽基础设施的差异,并向上层应用提供一致的编程接口和体验,帮助应用在不同环境中迁移。
Kubernetes做出了几个重要的架构选择,大大缓解了分布式集群管理系统的附属复杂性。控制循环(Control loops)
Kubernetes架构的核心就是就是控制循环 (control loops),也是一个典型的"负反馈"控制系统。当控制器观察到期望状态与当前状态存在不一致,就会持续调整资源,让当前状态趋近于期望状态。基于控制循环,K8s实现了完整的自动化容器编排系统。比如,节点宕机后自动迁移应用,修改应用副本数就可以实现应用的扩缩容,等等。
所有K8s组件都是基于一致的架构实现。开发者也可通过CRD(Custom Resource Definition)/ Operator等方法提供领域相关的扩展实现,极大扩展了K8s的应用场景。
此外由于分布式系统的稳定性挑战,基于控制循环的 “level-triggered” 实现比事件驱动的 “edge-triggered” 方式可以提供更加健壮的分布式系统实现。
声明式(Declarative)API
声明式API是云原生重要的设计理念,让开发者可以关注于应用自身,而非系统执行细节。这样的架构方式也有助于将整体复杂性下沉,交给基础设施实现并持续优化。
比如,Kubernetes为开发者提供了比如Deployment, StatefulSet, Job等不同类型工作负载抽象。这些资源由相应 Controller来负责具体的部署、变更、恢复等,用户无需关注这些细节。
基础设施抽象
K8s通过一系列抽象如CNI - 容器网络接口, CSI - 容器存储接口,允许基础设施提供方提供差异化的实现,但是遵从统一的控制面接口。这帮助业务应用可以较少关注底层基础设施差异,能够在不同环境中一致管理、自由迁移;也提升了基础设施提供方的积极性,构建有竞争力的产品能力。
正是这些架构选择,有效降低了分布式集群管理的附属复杂性。让Kubernetes成为赢得了开发者的心。
在生产环境中落地 Kubernetes,持续保障系统的稳定性,安全性和规模化成长。对绝大多数客户依然充满挑战。很多企业的K8s团队的日常工作是这个样子的
日常维护集群,进行版本升级
平均每个月要进行一次小版本升级
平均每年要进行一到两次大版本升级
日常更新操作系统安全补丁
平均每个月要进行一次
解决容器集群中各种问题应急
每天n次
对集群进行容量评估,手动扩缩容
按需
为了简化客户在云上使用容器技术,更好聚焦所有主流的云厂商都提供了托管Kubernetes服务。Google GKE, AWS EKS, 阿里云ACK, 都是其中的代表。对于托管集群,云服务商托管了K8s的控制面组件,提供了默认高可用、安全的控制面,部分简化了用户的运维。
对于K8s数据面的工作节点,可以是ECS VM或者裸金属实例,托管K8s服务只负责节点上 Worker Node 组件的生命周期,其他节点运维依然需要自己负责。这意味着,在运维责任、安全性、稳定性方面,云和客户采用如下图的责任共担模型。
阿里云、Google、AWS的容器产品也提供了托管节点池,可以实现自动化的节点组件升级,CVE修复,故障自愈等能力,将日常节点的运维复杂性留给云平台,将简单留给客户。
云原生计算基金会 (CNCF) 2022年度调查显示,79%受访者会使用云平台提供的Kubernetes服务。在阿里云上接近80%的K8s用户也已采用阿里云容器服务ACK。
Kubernetes的数据面是由节点组成,节点可以是虚拟机,裸金属服务器或者物理机。K8s 控制面动态调度Pod到节点进行执行。这样架构非常自然,但也有一些天然的缺点
1 . Pod与节点生命周期不同步:
2 . 同节点内部Pod共享资源:
3 . 容器网络与节点网络独立管理:
4 . 容量规划与弹性配置复杂
我们希望对 Kubernetes 进行 radical simplification,实现几个关键的
实现Serverless Kubernetes的目标,不同厂商选择了不同的路径。
Nodeless Kubernetes
Nodeless Kubernetes 的代表就是 Google GKE Autopilot。这个方案非常易于理解,它没有改变Kubernetes的部署架构,而是将工作节点的运维与集群容量管理下沉到基础设施负责。
注:GKE Autopilot基于节点池进行伸缩,每个节点池中实例规格保持一致,整个节点创建流程如下图所示。
详细信息可以参考[3]。
这个方案最大的优势是其与现有Kubnernetes生态兼容度非常高,它保留了节点的概念,支持DaemonSet,节点选择(nodeSelector)与节点亲和性(nodeAffinity)等与节点紧密相关的概念。
同时,这个方案为了提升K8s的易用性,选择牺牲了一些通用性。比如,不支持对节点的访问和操作,不支持自定义操作系统等等。而且这个方案只是将节点运维的复杂性部分隐藏并下沉到基础设施,但是很多本质复杂性并未消失。比如:
此外由于用户和云平台的边界发生了变化,GKE Autopiot在安全模型上与标准集群有非常不同的设计
在数据面
由于用户应用和云服务管理的系统服务运行在同一个VM内部,而且一个VM内部支持多个用户应用,OS也是一个全功能的OS。数据面的安全攻击面是偏大的。
控制面的安全架构是通过定制的 Admission Controller 实现的, 它会拦截K8s API请求,并执行相关的安全策略 (比如, 不允许用户操作kube-system名空间下系统级 Pod,限制特权容器等)。这个设计也存在一定的脆弱性,比如类似今年发现的 安全漏洞 [6]。
整体而言 GKE Autopilot 是对 K8s 产品形态的一个创新,而不是技术和架构变革。它在基本兼容的前提下,重新定义了云和用户运维K8s的边界,提供了创新的计费模式。然而在体验上与 GKE 的托管节点池相比,简化了节点池和弹性策略的配置管理,但是也增加了更多的限制。
注:社区Cluster Autoscaler框架存在着一些先天问题。Karpenter等新的弹性实现升了灵活性、降低了节点管理的复杂性。容器服务相关的工作也在进展中,结合托管节点池可以给用户更加简单的管理体验。
Serverless Container
基于Serverless Container的K8s产品代表是 AWS EKS on Fargate, 阿里云 ACK on ECI(弹性容器实例)/ASK 以及 Azure AKS with ACI
每一个Pod运行在一个独立的安全沙箱之中,采用虚拟化技术实现资源隔离和安全隔离。此外不再有节点概念。
Serverless Container可以与经典的K8s混合使用,作为弹性资源供给的手段,比如 ACK on ECI或者EKS on Fargate;或者可以更进一步实现一个完全意义上的 Serverless Kubernetes, 阿里云的 ASK 将更多K8s的能力默认通过云服务支持,比如DNS服务发现由PrivateZone实现,Ingress路由管理由ALB实现,也移除了节点池这些概念。在选择牺牲部分灵活性的同时,这样的设计进一步降低了集群的复杂度也推动用户关注点上移。
在安全和稳定性模型上,ACK on ECI/ASK依然采用了责任共担模式,但是数据面责任边界上移。
某种意义上,基于Serverless Container的K8s在设计上改变了 Kubernetes 的基础设计理念。
优点
缺点
Nodeless Kubernetes vs. Serverless Container 对比
阿里云选择这条道路的原因,是我们希望能够帮助客户最大化弹性价值,简化用户的弹性体验的同时,也帮助阿里云能够充分发挥整体弹性计算资源池的成本、规模和技术优势。
本文试着梳理 Kubernetes 所遇到的挑战,设计 Serverless Kubernetes的原因、挑战和发展路径。
后面会展开介绍 Serverless Kubernetes 下一步发展要解决的问题和思考。
参考链接:
[1]https://www.cgl.ucsf.edu/Outreach/pc204/NoSilverBullet.html
[2]https://architecturenotes.co/fallacies-of-distributed-systems/
[3]https://wdenniss.com/building-gke-autopilot
[4]https://wdenniss.com/autopilot-capacity-reservation
[5]https://cloud.google.com/kubernetes-engine/docs/concepts/workload-identity
[6]https://www.paloaltonetworks.com/blog/2022/03/gke-autopilot-vulnerabilities/
本文由哈喽比特于2年以前收录,如有侵权请联系我们。
文章来源:https://mp.weixin.qq.com/s/1aMalQs-AE2L1aA5X20gJA
京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。
日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。
据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。
今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。
日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。
近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。
据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。
9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...
9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。
据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。
特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。
据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。
近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。
据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。
9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。
《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。
近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。
社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”
2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。
罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。