AWS Docker 容器和 ECS 相关知识点。
亚马逊弹性容器服务 (ECS, Elastic Container Service)
一、ECS 的基本概念

- 在
ECS上可以以秒级别地快速扩展或缩减(编排)容器数量 - ⭐ 两种容器的启动类型:
EC2启动类型:将ECS任务运行在用户自主管理的EC2实例上Fargate启动类型:将容器运行在ECS管理的无服务器基础架构上
EKS (Elastic Kubernetes Service):AWS 提供的 Kubernetes 托管服务ECR (Elastic Container Registry):AWS 的 Docker 镜像仓库的托管服务
二、Docker 基本概念

三、ECS 常见的使用场景

- 微服务架构
- 批处理作业
- 迁移应用程序到云端(将本地应用程序容器化后迁移至 ECS)
四、ECS 的核心概念

- ⭐
ECS 集群:ECS 任务或ECS 服务的逻辑分组 ECS 任务:定义要运行的容器、容器个数(最多 10 个)、参数等的一次性任务- ⭐
ECS 服务:指定在集群中要保存多少个ECS 任务定义副本任何
ECS 任务失败或中止,调度程序都会启动另一个副本来替代它,以维持数量。
五、Fargate

- 为 vCPU、操作系统、存储和内存资源量付费
ECS 的 IAM 角色
一、ECS 安全相关

EC2启动类型:需要EC2实例的IAM 角色和任务IAM 角色Fargate启动类型:只需要任务IAM 角色
ECS 的弹性扩展 (Service Auto Sacling)
一、ECS 服务的弹性伸缩基本概念

- ⭐
EC2启动类型的场景下,除了需要扩展/收缩任务数量,还需要控制运行容器的EC2实例数量 - 弹性伸缩支持的类型和
EC2的一样:- 目标跟踪扩展策略
- 分布扩展策略
- 计划策略
Fargate由于是无服务器架构,更适合配置弹性伸缩
ECS 与 ALB
一、ECS 与 ALB 基础架构和优势

亚马逊 EKS (Elastic Kubernetes Service)
一、亚马逊 EKS 基本概念


- ⭐
EKS是区域级别的服务 - 通过
EKS可以构建跨多个可用区的高度可用的应用程序 - ⭐ 可以跨 AWS 和本地数据中心管理 Kubernetes 集群和应用程序
EKS支持ALB、NLB和CLB负载均衡器ALB:Application Load Balancer
NLB:Network Load Balancer,NLB能够在极低的延迟下,支持每秒数千万的请求,在 API 上兼容现有的ALB应用负载均衡器。CLB:Classic Load Balancer- ⭐ Pods 是 Kubernetes 中的一个或多个容器的集合,是集群中最小的部署和管理的基本单元
二、EKS 与 ELB (Elastic Load Balancing)

AWS 负载均衡器控制器 (AWS Load Balancer Controller)负载管理 Kubernetes 集群的负载均衡器
三、EKS Auto Scaling

- 集群 Auto Scaling
Vertical Pod Autoscaler:垂直扩展,为 Pod 自动调整 CPU 和内存预留Horizontal Pod Autoscaler:水平扩展,根据资源使用情况,通过自动缩放 Deployment、Replication Controller 以及 ReplicaSet 中 Pod 的数量Deployment:用于管理运行一个应用负载的一组 Pod。
Replication Controller:是 Kubernetes 中最早引入的副本控制器,其主要作用是确保指定数量的Pod副本始终在集群中运行。
ReplicaSet:也是一种副本控制器,目的是维护一组在任何时候都处于运行状态的 Pod 副本的稳定集合。
- 工作负载 Auto Scaling
Kubernetes Cluster Autoscaler:与 AWS Sacling 组一起使用Karpenter open-source AutoScaling project:与 EC2 fleet 一起使用
四、EKS Distro

EKS Distro缓解了跟踪更新、确定兼容性以及在分布各处的团队中统一使用 Kubernetes 版本的需求
五、ECS Anywhere 和 EKS Anywhere

- 在
AWS Outposts以外的基础设施(如裸金属服务器)上运行ECS和EKS当然
AWS Outposts上也肯定是可以运行的。
亚马逊 ECR (Elastic Container Registry)
一、亚马逊 ECR 基本概念


二、ECR 的组件

三、ECR 的拓展功能

四、ECR 使用流程

五、ECR 涉及的 IAM 权限

六、将镜像推送到 ECR 私有仓库的流程

- 在 Docker 客户端进行身份认证:
aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com - 将镜像推送到
ECR:# 本地镜像打标签 docker tag image_name:tag aws_account_id.dkr.ecr.region.amazonaws.com/repository_name:tag # 推送镜像 docker push aws_account_id.dkr.ecr.region.amazonaws.com/repository_name:tag
架构模式之 Docker 容器和 ECS


