Amazon EKS 热门2017年〜
在 AWS 上轻松构建和运维 Kubernetes 集群的托管服务
它能做什么
Amazon EKS (Elastic Kubernetes Service) 是在 AWS 上轻松运行 Kubernetes 的托管服务。AWS 自动管理 Kubernetes 控制平面 (API 服务器和 etcd 等) 的构建、运维和扩缩容,用户可专注于应用部署。与开源 Kubernetes 完全兼容,可直接使用现有的 Kubernetes 工具和插件。
使用场景
适用于大规模微服务的运维管理、从本地 Kubernetes 环境迁移到云端、多云策略中 AWS 侧的容器基础设施、机器学习工作负载的分布式执行、有状态应用 (数据库和消息队列) 的容器运维等需要利用 Kubernetes 生态系统的场景。
日常类比
可以将其比作符合国际标准的工厂管理系统。按照 Kubernetes 这一世界通用标准 (类似 ISO 标准) 运营工厂,但工厂的水电安保等基础设施管理由 AWS 代为处理。即使搬迁到其他工厂 (云),由于标准相同,操作流程可以直接沿用。
什么是 EKS
Amazon Elastic Kubernetes Service (EKS) 是 AWS 提供的托管 Kubernetes 服务。Kubernetes 是自动化容器化应用部署、扩缩容和管理的开源平台,由 Google 开发,现由 CNCF (Cloud Native Computing Foundation) 管理。EKS 是 Kubernetes 认证发行版,可直接使用标准 Kubernetes API。
主要特性
EKS 最大的特点是 AWS 完全管理 Kubernetes 控制平面。控制平面跨多个可用区冗余部署,保证 99.95% 的 SLA。工作节点可选择 EC2 实例、Fargate 或通过 EKS Anywhere 使用本地环境。Helm chart、kubectl、Kustomize 等 Kubernetes 生态系统标准工具均可使用。通过与 AWS App Mesh 和 AWS Load Balancer Controller 的集成,服务网格和流量管理也能轻松实现。
与 ECS 的区别
EKS 和 ECS 都是容器编排服务,但设计理念不同。ECS 是 AWS 自有服务,与 AWS 生态系统深度集成,配置简单。EKS 遵循 Kubernetes 标准,在多云和混合云环境中具有出色的可移植性。已有 Kubernetes 知识和工具的团队适合 EKS,追求 AWS 专属简单运维的团队适合 ECS。 如需全面学习与 ECS 区别的最佳实践,推荐参阅 Amazon 上的专业书籍。
定价体系
EKS 控制平面每集群每小时收费 0.10 美元。此外还需支付作为工作节点使用的 EC2 实例或 Fargate 费用。使用 EKS Auto Mode 可将节点管理交给 AWS,仅支付计算费用。小规模验证环境可从 2 台 t3.medium 实例起步。
入门指南
开始使用 EKS 时,eksctl 命令行工具非常方便。只需执行 eksctl create cluster 命令,即可自动构建包含 VPC、子网、安全组和节点组的完整集群。集群启动后,可使用 kubectl 像普通 Kubernetes 一样部署应用。也可通过 AWS 管理控制台创建和监控集群。
注意事项
- Kubernetes has a steep learning curve, so container beginners are recommended to start with ECS and migrate to EKS as needed
- The control plane costs approximately $73 per cluster per month, so delete test clusters when not in use to control costs