可靠性最佳实践 - Amazon EKS

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

可靠性最佳实践

本节提供有关如何使工作负载在EKS弹性和高可用性上运行的指导

如何使用本指南

本指南适用于想要在中开发和运营高可用性和容错服务的开发人员和架构师。EKS为了便于阅读,该指南分为不同的主题领域。每个主题都以简要概述开头,然后列出有关EKS集群可靠性的建议和最佳实践。

简介

的可靠性最佳实践分为EKS以下主题:

  • 应用程序

  • 控制层面

  • 数据层面

是什么使系统可靠? 如果系统在一段时间内环境发生变化,但仍能始终如一地运行并满足需求,则可以称之为可靠。为实现这一目标,系统必须检测故障,自动自我修复,并能够根据需求进行扩展。

客户可以使用 Kubernetes 作为基础,可靠地运行关键任务应用程序和服务。但是,除了采用基于容器的应用程序设计原则外,可靠地运行工作负载还需要可靠的基础架构。在 Kubernetes 中,基础设施包括控制平面和数据平面。

EKS提供了生产级 Kubernetes 控制平面,该控制平面旨在实现高可用性和容错性。

在 EKSAWS,负责 Kubernetes 控制平面的可靠性。EKS在一个区域的三个可用区中运行 Kubernetes 控制平面。AWS它会自动管理 Kubernetes API 服务器和 etcd 集群的可用性和可扩展性。

数据平面可靠性的责任由您、客户和共同承担AWS。EKS为部署 Kubernetes 数据平面提供了三个工作节点选项。Fargate 是最受管理的选项,负责处理数据平面的配置和扩展。第二个选项是托管节点组,用于处理数据平面的配置和更新。最后,自我管理的节点是数据平面中管理最少的选项。你使用的数据平面AWS管理得越多,你的责任就越少。

托管节点组可自动执行EC2节点的配置和生命周期管理。您可以使用 EKSAPI(使用EKS控制台、、、AWSAPIAWSCLICloudFormation、Terraform 或eksctl)创建、扩展和升级托管节点。托管节点在您的账户中运行EKS经过优化的 Amazon Linux 2 EC2 实例,您可以通过启用SSH访问权限来安装自定义软件包。当您配置托管节点时,它们作为托EKS管的 Auto Scaling 组的一部分运行,该组可以跨越多个可用区;您可以通过创建托管节点时提供的子网来控制这一点。EKS还会自动标记托管节点,以便它们可以与 Cluster Autoscaler 一起使用。

Amazon 对托管节点组EKS采用分担责任模式CVEs和安全补丁。由于托管节点运行经亚马逊EKS优化的节点AMIs,因此在修复错误AMIs时,A EKS mazon 负责构建这些节点的补丁版本。但是,您有责任将这些修补AMI版本部署到您的托管节点组。

EKS尽管必须启动更新过程,但也可以管理更新节点。EKS文档中说明了更新托管节点的过程。

如果您运行自管理节点,则可以使用 Amazon EKS 优化的 Linux AMI 来创建工作节点。您负责修补和升级和节点。AMI最佳做法是使用eksctl CloudFormation、或基础架构作为代码工具来配置自我管理节点,因为这样可以轻松升级自管理节点。在更新工作节点时,请考虑迁移到新节点,因为迁移过程会将旧的节点组弄成污染NoSchedule并在新堆栈准备好接受现有 Pod 工作负载后耗尽节点。但是,您也可以对自行管理的节点进行就地升级

责任共担模型——Fargate

责任共担模型——Fargate

责任共担模型-MNG

责任共担模型-MNG

本指南包括一组建议,您可以使用这些建议来提高EKS数据平面、Kubernetes 核心组件和应用程序的可靠性。

反馈

本指南即将发布, GitHub 旨在收集来自更广泛的 EKS /Kubernetes 社区的直接反馈和建议。如果您认为我们应该在指南中包含最佳实践,请在 GitHub 存储库中提交问题或提交 PR。随着服务中添加新功能或新的最佳实践的发展,我们打算定期更新该指南。

📝 编辑此页面 GitHub