04 Docker的平台架构

0. 容器的落地

从“容器运行”到“生产使用”
容器的数量级也会出现爆发性增长,容器多起来之后会产生很多问题。

1.容器编排(orchestration)

这里的编排泛指广义的编排,用于管理容器下面的主机,管理容器以及日期之间的逻辑关系,即为我们所知的应用架构

  • 集群管理:配置管理、资源视图、节点增删、高可用
  • 容器调度:容器部署(平均地部署到每个主机上去,并在某个主机资源紧张的时候把容器迁移到其他主机)、调度策略(将几个通信紧密的容器总在同一个主机上运行)、互斥(资源消耗大的容器总是运行在不同的主机上)
  • 故障恢复:主机检查(主机崩溃,让容器在其它主机上运行)、容器检查(容器故障,重启或重新部署,保证应用的健康运行)
  • 应用编排:应用是一个个细微的容器来组成,每一个容器之间具有一定的逻辑关系,我们需要使用简单明了的编排语句将这些容器关联起来,比如容器之间的端口访问,容器的启动顺序等,从而实现整个应用的逻辑架构。

2.编排主流的3大工具

Swarm: Docker推出 2014年发布 内置于Docker,和compose一起使用
Mesos: Apache推出 2007年发布 一般会结合marathon、Aookeeper一起使用
Kubernets: Google推出 2014年发布 结合Etcd一起使用

3.负载均衡和服务发现

04 Docker的平台架构_第1张图片
负载分配和服务发现
  • 负载均衡:请求到达负载均衡器之后,负载均衡器将请求平均的分配到后面的容器上。
  • 常用的负载均衡的技术:haproxy,LVS,F5,Nginx
  • 服务发现:(如何知道新增加的负载?)服务发现会自动将容器的配置信息上传至配置中心(config center),包含了容器的IP,端口、对外的域名等。负载均衡会周期性地从配置中心定期获取配置信息,将容器加入负载均衡器的访问架构中。
  • 常用的服务发现的技术:Etcd,Zookeeper,Consul

4.日志管理

  • 日志:包含主机、编排工具、日志、容器、容器中的应用等等相关的日志
  • 对日志处理平台的要求:集中化、海量存储、灵活过滤、快速查询、伸缩性架构、高可用、强大的UI
  • 日志管理软件:ELK ,包含了3个组件:
  • Logstash,用于收集各种各样的日志
  • ElasticSearch:主要用于存储和搜索日志
  • Kbana:用于界面展示的管理工具

5. Docker监控

04 Docker的平台架构_第2张图片
Docker监控

6. Docker平台架构

04 Docker的平台架构_第3张图片
Docker层级结构
  1. 底层(平台层):对计算、网络、存储等等资源进行管理,结合容器引擎和容器编排的工具实现对容器化应用的落地。
  2. 能力层:实现容器的弹性架构和负载均衡,严格的权限体系
  3. 提供Web UI和功能齐全的API服务。

7. Docker平台技术体系

04 Docker的平台架构_第4张图片
常用工具

你可能感兴趣的:(04 Docker的平台架构)