1、容器网络
定义:容器的出现使网络拓扑变得更加动态和复杂。用户需要专门的解决方案来管理容器与容器,容器与其他实体之间的连通性和隔离性。
分类:
(1)docker原生:docker network
(2)第三方开源:
fannel
weave
calico
2、服务发现
定义:动态变化是微服务应用的一大特点。当负载增加时,集群会自动创建新的容器;负载减小,多余的容器会被销毁。容器也会根据 host 的资源使用情况在不同 host 中迁移,容器的 IP 和端口也会随之发生变化。因此需要提供服务发现这种机制,来保存容器集群中所有微服务最新的信息,比如 IP 和端口,并对外提供 API,提供服务查询功能。
分类(典型方案):
(1)etcd
(2)consul
(3)zookeeper
3、监控
定义:监控对于基础架构非常重要,而容器的动态特征对监控提出更多挑战。
分类:
(1)docker原生:
docker ps/top/stats:docker ps/top/stats 是Docker 原生的命令行监控工具。
docker stats API:用户可以通过 HTTP 请求获取容器的状态信息。
(2)第三方开源:
sysdig
cAdvisor/Heapster
Weave Scope
4、数据管理
定义:容器经常会在不同的 host 之间迁移,如何保证持久化数据也能够动态迁移,是数据管理的重要内容。
分类:flocker(提供数据管理的相关能力)
5、日志管理
定义:日志为问题排查和事件管理提供了重要依据。
分类:
(1)docker logs:docker logs是docker原生工具
(2)logspout:logspout对日志提供了路由功能,它可以收集不同容器的日志并转发给其他工具进行后处理
6、安全性
定义:对于年轻的容器,安全性一直是业界争论的焦点。
分类:OpenSCAP(OpenSCAP能够对容器镜像进行扫描,发现潜在的漏洞。)