亚马逊AWS官方博客

eksctl – the EKS CLI

当我们启动 Amazon EKS 时,我们有一个更完整命令行的计划。我们被 Weaveworks 同时推出的开源命令行工具 eksctl 所吸引,并对我们听到的用户反馈感到兴奋。我们决定将 eksctl 作为 EKS 计划周期的一部分,并鼓励其他人也做出贡献,而不是建立自己的计划,我们很高兴这样做!

eksctl 现在正式成为 EKS 的命令行

eksctl.io 发布以来的一年中,许多 EKS 构建者开始依赖该工具处理新集群的初步配置和长期运行集群的配置管理。我们继续收到积极的反馈,因为我们支持一个开源项目作为 EKS 产品的一部分。尽管我们认可并支持 eksctl 作为我们的命令行,但我们发现构建者对我们的官方承诺级别感到困惑,我们被告知我们的文档对 eksctl 的介绍不够明确。EKS 构建者经常要求我们在我们的核心 Amazon EKS 技术文档中添加 eksctl 用法的示例和直接引用。

我们接纳了这一意见:eksctl 现在得到了 EKS 团队的正式认可和支持,现已包含在 EKS 文档中。

EKS 文档包括特定的 eksctl 示例和用例。我们将在每次文档修订时持续审查 eksctl 用法的引用,并欢迎大家就 EKS 开放路线图提出问题,提供对我们文档有用的补充的建议。我们鼓励您研究 eksctl.io 并考虑为其做出贡献。

如果您还未用过 eksctl,以下是您开始的方法…

开始使用 eksctl

借助 eksctl,您可以使用单个命令创建生产就绪的 EKS 集群:

$ eksctl create cluster

通过该单个命令,将为控制平面设置适当的 AWS Identity and Access Management (IAM) 角色,控制平面将被添加到 Amazon VPC 进行网络访问控制,并提供相应的 kubeconfig 文件。eksctl 还提供了附加 EC2 自动扩展组的选项,使得您的集群在部署完应用程序后即可开始调度 Pod。在这种情况下,我们还鼓励您访问 eksworkshop.com,这是一个在线教程,其中包含大量使用 eksctl 的实践模块。

使用 GitOps 进行配置管理

当操作生产 Kubernetes 集群时,开发运营团队需要经验证的配置管理方法。许多 EKS 用户都在 GitOps 上取得了成功。GitOps 是一个广泛应用于保持系统配置数据处于源控制的术语。GitOps 可以被认为是集群配置的连续交付,这就是结构良好的命令行接口如此重要的原因所在 – 可靠的系统配置自动化依赖于交互式命令行接口。大多数应用程序团队都建立了更新、测试和部署实时服务的更改的工作流。我们建议 GitOps 作为 EKS 用户的最佳实践,我们喜欢 eksctl 的一点是,您可以使用它来实施 GitOps 方法。

社区主导的发展

除了 GitOps 主导的配置管理之外,还有一些其他 eksctl 特性:

  • 可扩展的生产就绪集群:通过 GitOps 添加流行的扩展,以实现完整的端到端集群管理。可以从 Weave Net、Helm、AWS CI 工具(如 AWS CodeCommitAWS CodeBuild、Amazon Elastic Container Registry (Amazon ECR) 和 AWS CodeStar)以及 Jenkins X、Weave Scope 和 Weave Flux 中进行选择。
  • 自动可扩展性:从命令行轻松创建 Amazon EC2 Auto Scaling 组。
  • 简单、灵活的 VPC 网络:建立一个专用的 VPC,它可以配置为与其他 VPC 对等、变大或变小、使用专用子网或自定义,并与现有 VPC 一起使用。
  • 在您最喜欢的操作系统上运行:在您选择的操作系统上安装和运行 eksctl:Linux (curl)、Windows (chocolatey) 或 MacOS (homebrew)。

感谢 eksctl 团队!

Weaveworks 的 Ilya Dmitrichenko (@errordeveloper) 是 eksctl 的创建者及其首席工程师。他是 Kubernetes 的早期贡献者和 CNCF 大使。Chris Hein (@christopherhein) 以前是 AWS 的合作伙伴解决方案架构师和开发大使,在开发 eksctl 方面也发挥了作用。我们还要感谢开源社区的许多贡献者,他们一直在为 eksctl 做出贡献和改进。我们鼓励您通过使用 eksctl、提出问题或提交拉请求来为项目做出贡献。