CON326 | 您准备好了吗?采用 Kubernetes 的基本策略

CON326 | 您准备好了吗?采用 Kubernetes 的基本策略

关键字: [Amazon Web Services re:Invent 2023, Amazon EKS, Kubernetes Adoption Strategies, Organizational Culture, Team Autonomy, Mechanisms For Learning, Infrastructure Reliability, Failure Domains, Control Plane Design, Static Stability, Capacity Management]

本文字数: 2800, 阅读完需: 14 分钟

视频

导读

同其他所有软件基础结构解决方案一样,Kubernetes 部署也需要进行详细规划。在本次分享中,了解即使遇到控制平面问题,也能构建弹性应用程序的最佳策略及最佳实践。

演讲精华

以下是小编为您整理的本次演讲的精华,共2500字,阅读时间大约是12分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。

艾斯瓦·巴拉,亚马逊云科技的EKS总监,首先强调了采用Kubernetes这一新技术所涉及的诸多相互关联的因素,包括文化、组织结构、流程、工具和架构。

艾斯瓦向观众介绍了他的合作伙伴里克·索斯特海姆,后者在Kubernetes架构和故障模式方面具有丰富的经验。艾斯瓦主要负责从文化和流程、工具等方面进行分析,而里克则专注于技术架构相关内容。

在文化层面,艾斯瓦强调要通过机制将理念/信仰传递给下一代。他以亚马逊的运营审查为例,这是一个可重复的过程,团队会深入分析失败并采取纠正措施。例如,亚马逊云科技的服务团队可能会通过纠正错误(COE)的过程来调查一次故障,以了解客户影响、根本原因以及防止再次发生的关键教训。

另一种文化机制是亚马逊如何使用新闻稿和常见问题解答(FAQ)文件来指定需求。例如,开发新云服务的亚马逊产品团队可能在开发过程中编写模拟新闻稿和FAQ,迫使他们从客户的视角来看待产品发布。

艾斯瓦将机制定义为一种可重复的过程,通过设计的工具将输入转化为期望的结果。他强调,获得采纳、通过检查维持并迭代是关键步骤。他还提到,机制使用杠杆,如心理模型、过程、结构和资源。心理模型很强大但难以改变,而资源更容易调整。

例如,亚马逊的客户至上的心理模型塑造了整个公司的文化,从产品到架构再到资源分配。同时,为新员工提供印有亚马逊云科技字样的背包是一种简单的资源调整方式。

艾斯瓦详细解释了亚马逊的两块披萨团队结构——小型、自主的少于10人的团队,理想人数为6-8人。例如,建设新云计算数据库的亚马逊服务团队可能从一开始就作为一个由5名工程师和1名产品经理组成的两块披萨团队。这种结构通过将工作放在最接近的地方来提供所有权和加速决策。它还通过更快速的试验和学习降低了实验成本。

随着团队人数的增加超过12人,沟通成本也会相应上升。埃斯瓦强调,有必要进行“有丝分裂”(细胞分裂)——将大型团队划分为多个较小的团队。尽管拥有众多小型团队可能会带来潜在的重复工作和不一致的实践,但这也是必要的。

在亚马逊云科技(Amazon Web Services)中,核心信念是“自建自管”,即开发人员负责操作他们建立的系统。例如,设计和构建Amazon Aurora的工程师将负责监控和解决生产中的问题。这种快速的反馈机制有助于改进服务。

工程师们通过持续改进(COE)流程从失败中学习。当发生故障时,COE会捕获影响、根本原因、经验和缓解措施,以防止在整个亚马逊云科技再次发生。

虽然发现相关的COE取决于良好的意愿,但运营准备审查(ORR)机制弥补了这一空缺。ORR将COE的经验教训提炼成清单,团队在推出任何新产品、功能或增强功能之前都必须完成这个清单。这样就把运营卓越融入了其中。

例如,一个准备推出新亚马逊云科技服务的团队必须通过专注于架构、发布过程和事故响应准备的ORR清单。ORR直接从之前的生产经验中吸取教训,以防止重复问题。

埃斯瓦描述了像自动化管道检查这样的工具如何进一步强制执行最佳实践,而无需团队额外工作。就这样,埃斯瓦结束了他的部分演讲,并将演讲交给了Rick。

Rick开始概述EKS控制面,即管理集群配置和运行应用程序的工作节点数据面。为了可靠性,控制面在多个可用区后使用网络负载均衡器运行。

他列举了关键组件,如分布式Etcd数据库、API服务器、云控制器、调度程序、控制器管理器和kube代理。受管的节点群组简化了EC2实例的供应和生命周期管理。同时,亚马逊云科技的Fargate和Project Carpenter为EKS集群提供了其他容量选项。

Rick强调了参考EKS最佳实践指南,涵盖安全、可靠性和网络。他将更专注于故障模型和思考模式。

潜在故障领域包括EKS服务的核心功能、Kubernetes的控制平面以及集群节点的数据面。EKS API服务层的故障可能会导致创建集群资源的请求失败。然而,目标是实现静态稳定性,即集群能够独立运行。因此,应用程序应当能抵御EKS服务故障的影响。建议采用带有重试和抖动(jitter)的重试策略,以优雅地应对暂时的API故障。

控制平面层面的故障将直接影响EKS的服务水平协议(SLA),该协议承诺99.95%的正常运行时间。但是,节点上的故障是开放的,在没有控制平面的情况下,节点仍能继续运行应用程序。同样,使用重试和回退策略可以优雅地处理与API服务器的通信问题。

部分故障原因可能来自不稳定的自定义设置,如配置错误的准入控制钩子。仔细评估任何影响生产稳定性的控制平面自定义设置。

分布式Etcd数据库通过其共识方法来适应故障。即使在有三个节点中只有两个的情况下,集群仍能进行读写操作。在一个节点的情况下,它将降为只读模式,但应用程序仍然可以运行。如有需要,可以使用集群备份,无论是使用亚马逊云科技的服务还是第三方工具。

网络断开可能导致当节点重新加入集群时,容器被意外地重新平衡或终止。静态稳定性模型意味着应用程序在节点上继续运行,即使控制平面发生故障。但是,过度分配额外的容量会给控制平面带来压力,可能会减缓恢复速度。Kubernetes具有内置的机制来优雅地处理大规模重新连接事件。

总的来说,Eswar和Rick强调在亚马逊云科技上采用Kubernetes时需要全面考虑文化、过程、架构和故障模式。通过ORR和COE等机制,实现了可持续的学习和改进。静态稳定应用程序设计、带重试和抖动(jitter)的重试以及逐步推广的关键模式对于可靠性至关重要。

下面是一些演讲现场的精彩瞬间:

领导者们讨论了采用亚马逊云科技等新技术时需要考虑的诸多相互关联因素。

CON326 | 您准备好了吗?采用 Kubernetes 的基本策略_第1张图片

为了应对可能的故障,需要在退避策略中加入一些变动。

CON326 | 您准备好了吗?采用 Kubernetes 的基本策略_第2张图片

亚马逊云科技的领导者强调了Golang和Java SDK在Kubernetes中的应用已经相当成熟且受到广泛欢迎。

CON326 | 您准备好了吗?采用 Kubernetes 的基本策略_第3张图片

演讲者提到了一个潜在问题,即在节点与网络断开连接但尚未真正失败时,Kubernetes可能错误地终止了运行在其上的Pod。

CON326 | 您准备好了吗?采用 Kubernetes 的基本策略_第4张图片

亚马逊云科技提供了一系列灵活的选项,根据应用程序需求来调整容量,以确保可用性。

CON326 | 您准备好了吗?采用 Kubernetes 的基本策略_第5张图片

在发生故障之后,如果Pod没有采取适当的重试抖动退避机制,那么控制平面可能需要数小时才能恢复正常运行。

CON326 | 您准备好了吗?采用 Kubernetes 的基本策略_第6张图片

文章还探讨了如何通过使用更小、更易于管理的服务来防止分布式系统过载的方法。

CON326 | 您准备好了吗?采用 Kubernetes 的基本策略_第7张图片

总结

在实施Kubernetes时,需要考虑组织的文化、流程以及架构等方面。一种支持实践的机制可以帮助团队以正确的方式解决反复出现的问题。小型自治团队可以负责端到端的服务,从而提高效率和降低实验成本。然而,随着团队的扩张,可能会出现重复和不一致的情况。例如部署管道这样的中央标准和工具可以融入最佳实践,而不会导致过程上的负担。从架构角度来看,Kubernetes包括控制平面和数据平面两部分。控制平面负责管理预期的状态,而数据平面则负责运行应用程序。高可用性需要在各个地区之间分散控制平面组件。节点应保持无状态,并通过负载均衡器进行连接。故障应被隔离,而非引发级联效应。为避免依赖服务过载,可以通过回退重试失败操作来实现。了解Kubernetes结构体(如部署)在中断期间的弹性和恢复能力至关重要。调整组件规模并使用节流技术以防止过载。监控有助于实现恢复和持续改进。

演讲原文

想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站!

2023亚马逊云科技re:Invent全球大会 - 官方网站

点击此处,一键获取亚马逊云科技全球最新产品/服务资讯!

点击此处,一键获取亚马逊云科技中国区最新产品/服务资讯!

即刻注册亚马逊云科技账户,开启云端之旅!

【免费】亚马逊云科技“100 余种核心云服务产品免费试用”

【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”

亚马逊云科技是谁?

亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者,自 2006 年以来一直以不断创新、技术领先、服务丰富、应用广泛而享誉业界。亚马逊云科技可以支持几乎云上任意工作负载。亚马逊云科技目前提供超过 200 项全功能的服务,涵盖计算、存储、网络、数据库、数据分析、机器人、机器学习与人工智能、物联网、移动、安全、混合云、虚拟现实与增强现实、媒体,以及应用开发、部署与管理等方面;基础设施遍及 31 个地理区域的 99 个可用区,并计划新建 4 个区域和 12 个可用区。全球数百万客户,从初创公司、中小企业,到大型企业和政府机构都信赖亚马逊云科技,通过亚马逊云科技的服务强化其基础设施,提高敏捷性,降低成本,加快创新,提升竞争力,实现业务成长和成功。

CON326 | 您准备好了吗?采用 Kubernetes 的基本策略_第8张图片

你可能感兴趣的:(aws)