Skip to content
Go back

AWS 知识点 - Docker 容器和 ECS

| 0 Views Edit page

AWS Docker 容器和 ECS 相关知识点。


亚马逊弹性容器服务 (ECS, Elastic Container Service)

一、ECS 的基本概念

ECS 的基本概念

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

二、Docker 基本概念

Docker 基本概念

三、ECS 常见的使用场景

ECS 常见的使用场景

  • 微服务架构
  • 批处理作业
  • 迁移应用程序到云端(将本地应用程序容器化后迁移至 ECS)

四、ECS 的核心概念

ECS 的核心概念

  • ECS 集群ECS 任务ECS 服务逻辑分组
  • ECS 任务:定义要运行的容器、容器个数(最多 10 个)、参数等的一次性任务
  • ECS 服务:指定在集群中要保存多少个 ECS 任务 定义副本

    任何 ECS 任务 失败或中止,调度程序都会启动另一个副本来替代它,以维持数量。

五、Fargate

Fargate

  • 为 vCPU、操作系统、存储和内存资源量付费

ECS 的 IAM 角色

一、ECS 安全相关

ECS 运行所需 IAM 角色

  • EC2 启动类型:需要 EC2 实例的 IAM 角色 和任务 IAM 角色
  • Fargate 启动类型:只需要任务 IAM 角色

ECS 的弹性扩展 (Service Auto Sacling)

一、ECS 服务的弹性伸缩基本概念

ECS 服务的弹性伸缩基本概念

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

ECS 与 ALB

一、ECS 与 ALB 基础架构和优势

ECS 与 ALB 基础架构和优势


亚马逊 EKS (Elastic Kubernetes Service)

一、亚马逊 EKS 基本概念

亚马逊 EKS 基本概念
亚马逊 EKS 架构

  • EKS区域 级别的服务
  • 通过 EKS 可以构建跨多个可用区的高度可用的应用程序
  • ⭐ 可以跨 AWS 和本地数据中心管理 Kubernetes 集群和应用程序
  • EKS 支持 ALBNLBCLB 负载均衡器

    ALBApplication Load Balancer
    NLBNetwork Load BalancerNLB 能够在极低的延迟下,支持每秒数千万的请求,在 API 上兼容现有的 ALB 应用负载均衡器。 CLBClassic Load Balancer

  • ⭐ Pods 是 Kubernetes 中的一个或多个容器的集合,是集群中最小的部署和管理的基本单元

二、EKS 与 ELB (Elastic Load Balancing)

EKS 与 ELB

  • AWS 负载均衡器控制器 (AWS Load Balancer Controller) 负载管理 Kubernetes 集群的负载均衡器

三、EKS Auto Scaling

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

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

五、ECS Anywhere 和 EKS Anywhere

ECS Anywhere 和 EKS Anywhere

  • AWS Outposts 以外的基础设施(如裸金属服务器)上运行 ECSEKS

    当然 AWS Outposts 上也肯定是可以运行的。


亚马逊 ECR (Elastic Container Registry)

一、亚马逊 ECR 基本概念

亚马逊 ECR 基本概念 01
亚马逊 ECR 基本概念 02

二、ECR 的组件

ECR 的组件

三、ECR 的拓展功能

ECR 的拓展功能

四、ECR 使用流程

ECR 使用流程

五、ECR 涉及的 IAM 权限

ECR 涉及的 IAM 权限

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

将镜像推送到 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

架构模式之 Docker 容器和 ECS 01
架构模式之 Docker 容器和 ECS 02
架构模式之 Docker 容器和 ECS 03


Edit page