容器及容器生态系统概述

1.容器技术和容器平台技术

(1)容器技术:
(1.1)容器核心知识:是什么、为什么、怎么做(架构、镜像、容器、网络、存储);
(1.2)容器进阶知识:multi-host、容器网络、数据管理、日志管理、安全性。
(2)容器平台技术:
(2.1)容器编排引擎:docker swarm、kubernetes、mesos+marathon;
(2.2)容器管理平台:Rancher、ContainerShip;
(2.3)基于容器的PaaS(Platform-as-a-Service:平台即服务):Deis、Flynn、Dokku。
容器技术和容器平台技术–思维导图如下:
容器及容器生态系统概述_第1张图片
容器生态系统思维导图:
容器及容器生态系统概述_第2张图片

1.1 容器生态系统概述

1.1.1 容器核心技术:

容器核心技术是指能让Container(容器)在host(集群、主机)上运行起来的那些技术。
(1)容器规范:
OCI(runtime spec+image format spec)
(2)容器runtime:
runtime是容器真正运行的地方。需要跟操作系统的kernel紧密协作,为容器提供运行环境。
java程序类似容器,JVM类似runtime,JVM为java提供运行环境,容器只有在runtime才能运行
主流的容器runtime:lxc、runc、rkt。
(3)容器管理工具:
对内与runtime交互,对外为用户提供interface(界面)。
常用的容器管理工具:
lxd(是lxc对应的管理工具);
runc的管理工具是docker engine。docker engine包括后台deamon和cli两部分。通常说的Docker,就是指docker engine;
rkt的管理工具是rkt cli。
(4)容器定义工具:
容器定义工具:允许用户定义容器的内容和属性。这样容器就能够被保存、共享和重建。
常用的容器定义工具:
docker image:是docker容器的模板,runtime一句docker image创建容器;
dockerfile:是包含若干命令的文本文件,可以通过这些命令创建出docker image;
ACI(App Container Image):与docker image类似,不过它是由CoreOS开发的rkt容器的image格式。
(5)Registries:容器是通过image创建的,需要有一个仓库来统一存放image,这个仓库就叫做Registry。
Docker Registry:企业可以用Docker Registry构建私有的Registry;
Docker Hub:是docker为公众提供的托管registry,有很多现成的image;
Quay.io:也是一个公共托管registry。
(6)容器OS:是专门运行容器的操作系统。
常用:coreos、atomic、ubuntu core。

1.1.2 容器平台技术:

(1)容器编排引擎
要干的工作:用高效的方法来管理容器集群。
常用容器编排引擎:
docker swarm:是Docker开发的容器编排引擎;
kubernetes:是Google领导开发的开源容器编排引擎,同时支持Docker和CoreOS容器;
mesos:是一个通用的集群资源调度平台,mesos与marathon一起提供容器编排引擎功能。
(2)容器管理平台
是架构在容器编排引擎之上的一个更通用的平台。
通常容器管理平台支持多种编排引擎,抽象了编排引擎的底层实现细节。
典型代表:Rancher、ContainerShip。
(3)基于容器的PaaS
PaaS即(Platform-as-a-Service:平台即服务。
基于容器的PaaS为微服务应用开发人员和公司提供了开发、部署和管理应用的平台,使用户不必关心底层基础设施而专注于应用的开发。
开源容器PaaS的代表:Deis、Flynn、Dokku。

1.1.3 容器支持技术:

(1)容器网络
docker network:是Docker原生的网络解决方案;
flannel:第三方开源解决方案;
weave:第三方开源解决方案;
calico:第三方开源解决方案。
(2)服务发现
动态变化是微服务应用的一大特点。当负载增加时,集群会自动创建新的容器;负载减小,多余的容器会被销毁。
容器也会根据host的资源使用情况在不同host中迁移。
服务发现的典型解决方案:etcd、consul、zookeeper。
(3)监控
docker ps/top/stats:是Docker原生的命令行监控工具;
docker stats API:可以通过HTTP请求获取容器的状态信息;
sysdig:开源的容器监控方案;
cAdvisor/Heapster:开源的容器监控方案;
Weave Scope:开源的容器监控方案。
(4)数据管理
容器经常在不同的host之间迁移。
如何保证持久化数据也能动态迁移,是Rex-Ray这类数据管理工具提供的能力。
(5)日志管理
日志工具有两类:
docker logs:是Docker原生的日志工具。
logspout:对日志提供了路由功能,可以收集不同容器的日志并转发给其他工具进行后处理。
(6)安全性
OpenSCAP:是一种容器安全工具。能够对容器镜像进行扫描,发现潜在的漏洞。

你可能感兴趣的:(容器及容器生态系统概述)