aws 平台上如何智能化管理 容器集群...aws 平台上如何智能化管理 容器集群...

38
AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2018.01.10 薛军 AWS 解决方案架构师

Upload: others

Post on 12-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

AWS 平台上如何智能化管理容器集群最新最炫的容器技术更新

2 0 1 8 . 0 1 . 1 0

薛军 A W S 解决方案架构师

Page 2: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

容器化技术在企业中应用趋势

Page 3: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

业务创新驱动企业上云之路

App

已有的应用新的应用

采用现代的微服务和DevOps 框架和方法

容器化 利用现代的云基础设施:迁移上云云原生应用批处理

持续的业务创新

Page 4: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

容器与云平台:协助客户扩展容器服务

Amazon

EC2Amazon

ECS

AWS

Lambda

虚拟机 E C 2 容器 / E C S E K S … 无服务器 / L a m b d a

运维复杂度 /开发简易程度

部署

团队

架构

优势

挑战

服务器

运维

多层架构

稳定

比较重

容器集群

DevOps

微服务

可移植跨数据中心

集群管理和容器编排

Serverless

开发

事件驱动

可扩展

和AWS紧密集成

用户关注VM、容器和代码,并管理容器集群

用户关注容器和代码

用户只关注代码

Page 5: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

企业采用容器技术的关键因素

在哪里运行? 容器集群

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

ServerDocker

B

i

n

s

/

L

i

b

s

B

i

n

s

/

L

i

b

s

A

p

p

2

A

p

p

1

容器编排 容器镜像管理

Page 6: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

63% of Kubernetes workloads

run on AWS today —CNCF survey

AWS 是客户首选的容器应用技术平台

35%of Docker users on AWS

using Amazon ECS—DATADOG survey

Amazon ECS 是 AWS 客户首选的容器集群管理和编排平台

Page 7: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

采用 ECS 容器管理平台的客户

Page 8: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

为何客户选择将生产负载放在 AWS 容器环境

AWS VPC 网路模式

进阶的任务置放策略

深度集成 AWS 相关服务

ECS CLI…

全球部属

强力的编排引擎

自动扩展组

CloudWatch 监控指标

负载均衡器

Page 9: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

倾听客户的需求!

50+ 2015 后超过50 次的更新

客户

发布

反馈/ 新用户案例

理解与学习

实验,

更新,

发布新服务

Page 10: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

构建容器化应用的要素

容器网络

容器集群管理

容器编排和调度

安全监控与日志

服务注册与发现

Page 11: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

关键技术之一:容器集群管理

Page 12: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

集群管理器面临的挑战

Scheduling and Orchestration

集群管理 容器置放引擎

Availability Zone #1 Availability Zone #2 Availability Zone #3

Page 13: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

多环境自动化构建:基础设施即代码能力

Environment git repo

Env templates

dev

qa

prod

Page 14: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

高可用和弹性:集群管理服务和容器实例

● 92% CPU 预留● 58% Memory 预留● 弹性扩展策略:根据指标 Scale Out 和 Scale In

Page 15: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

基础资源的监控、日志和警报

服务级别指标可用

CloudWatch 日志CloudWatch 事件支持

Page 16: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

使用X-Ray实现容器运行环境的分布式追踪分析

AZ 1 AZ 2

ECS Cluster

ECS Container Instance ECS Container Instance

Task A Task B Task C

X-Ray

daemon

X-Ray

daemon

X-Ray API

Client

ALB

Page 17: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

我能更专注在应用而不是容器基础设施吗?

ECS Instance ECS Instance ECS Instance ECS InstanceECS Instance ECS Instance

EC2

FARGATE

Notifications

Amazon ECS CLUSTER

Availability Zone #1 Availability Zone #2 Availability Zone #3

Subnet 2

172.31.2.0/24Subnet 1

172.31.1.0/24

Subnet 3

172.31.3.0/24

Web

Shopping

Cart

Page 18: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

让客户专注于开发应用

无需管理基础设施

围绕任务为中心的原生 API

基于实际的任务资源计费

Page 19: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

Spot 竞价实例为容器集群提供更多可能

请参考: https://aws.amazon.com/blogs/compute/powering-your-amazon-ecs-cluster-with-

amazon-ec2-spot-instances/

Amazon

ECS AWS

CloudFormation

AWS Batch

Auto Scaling

Page 20: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

关键技术之二:容器编排和调度

Page 21: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

选择 AWS 托管容器服务 ECS

Page 22: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

在 AWS上如何继续使用 Kubernetes?

Amazon EC2

conjure-up

Kubernetes Operations

Tectonic Installer

社区解决方案 合作伙伴

Page 23: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

“请帮我运行 Kubernetes ”

“Run Kubernetes for me.”

Page 24: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

E L A S T I C C O N TA I N E R S E R V I C E F O R K U B E R N E T E S

(EKS)

Page 25: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

EKS 设计原则

和开源K u b e r n e t e s

一致体验

U p s t r e a m

保持和上游同步支持企业生产级别

的容器应用按需和 AW S 服务

无缝集成

Page 26: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

mycluster.eks.amazonaws.com

Availability

Zone 1

Availability

Zone 2

Availability

Zone 3

Kubectl

Page 27: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

创建 E K S 集群

创建并添加 W o r k e r 节点

启动 K 8 S 插件

启动容器应用

EKS 用户体验

Page 28: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

1.7.41.7.5

Version

1.7

Version

1.8

可选择的自动升级配置

Page 29: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师
Page 30: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

关键技术之三:容器网络模型

Page 31: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

Amazon VPC 容器联网模式 –支持 ECS172.31.0.0/16

Subnet

172.31.1.0/24

Internet

Other Entities in VPC

EC2 LB DB etc.

Private IP

172.31.1.164

• Amazon VPC 联网模式 - 每个任务都有自己的接口

• 提供动态的私有 IP 地址和内部DNS 名称

• 使用标准网络监控工具:Flowlogs

• 所有的 Fargate 任务运行在用户VPC 与子网

• 配置安全组以控制入站和出站流量

• 公有IP的支持

• 将您的应用程序部属跨越多个可用区域(AZ)中的子网以提高可用性

us-east-1a

us-east-1b

us-east-1c

ENI Fargate

TaskPublic /

208.57.73.13 /

https://github.com/aws/amazon-ecs-agent/blob/master/proposals/eni.md

Page 32: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

Amazon VPC CNI 网络插件实现—支持 E K S 和 B Y O K 8 S

原生的 VPC 网络模型通过CNI 插件支持 K8S

Pods 拥有和 VPC 中节点Nodes)一样的 VPC 网络

地址

简单、安全、高效的网络模型

Github 开源

…{ }

h t t p s : / / g i t h u b . c o m / a w s / a m a z o n - v p c - c n i - k 8 s

Page 33: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

Nginx Pod

Java Pod

ENI

Secondary IPs:

10.0.0.1

10.0.0.2

Veth IP: 10.0.0.1

Veth IP: 10.0.0.2

Nginx Pod

Java Pod

ENI

Veth IP: 10.0.0.20

Veth IP: 10.0.0.22

Secondary IPs:

10.0.0.20

10.0.0.22

ec2.associateaddress()

VPC Subnet – 10.0.0.0/24

实例 1 实例 2

Page 34: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

关键技术之四:服务注册发现

Page 35: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

常见的服务注册发现机制

负载均衡 键值对存储Key-value store

Service Mesh

Istio/Envovy

Page 36: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

通过 Route53 实现服务注册及发现

ECS

Route 53

alpha.internal

App: IP3, IP4

Frontend: IP1, IP2

beta.internal

App: IP3, IP4

Frontend: IP1, IP2

用户

Route 53 提供API来创建• Namespace

• 每个服务的CNAME

• 每个Task的A 记录• 包括任务及端口在

内的Service记录

ECS 运维管理服务的动态状态信息

Page 37: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师

总结

E K S 2 0 1 8 年正式发布

了解更多 :

A W S . A M A Z O N .

C O M / E K S

A W S . A M A Z O N .

C O M / E C S

A W S . A M A Z O N .

C O M / F A R G A T E

• AWS 是企业容器应用的首选平台, ECS 是 AWS 客户首选的容器编排引擎

• 使用 Fargate,您可以专注于设计和构建应用程序,而不是管理运行应用程序的基础设施

• EKS 帮助客户管理 Master 高可用集群,同时保持原生的K8S API 操作体验

• AWS K8S CNI 开源插件支持客户集成利用成熟、高效和安全的 VPC 网络

• ECS 结合 Route53 提供基于 DNS 的服务自动注册和发现

Page 38: AWS 平台上如何智能化管理 容器集群...AWS 平台上如何智能化管理 容器集群 最新最炫的容器技术更新 2 0 1 8 . 0 1 .1 0 薛军AW S 解决方案架构师