容器:
它是独立运行环境,类似虚拟机,对应用程序及关联性进行隔离,它可提高计算机资源利用率。本质上是一组受资源限制,彼此隔离的进程。
docker容器技术:
特点:无内核、无操作系统、进程隔离性。
优势:
1:更快速的交付和部署,容器启动时间是秒级,大量节约开发、测试、部署时间。
2:高效的部署和扩容:docker容器几乎可以在任意平台间迁移,可快速扩容和下线你的应用。
3:更高的资源利用率:一台主机可以运行数千个容器,开销小。
4:更简单的管理。
与虚拟机对比:
1:启动快速,属于秒级,虚拟机需要进几分钟。
2:需要资源少,docker容器与内核交互基本没有性能损耗,性能优于虚拟化。
3:docker更轻量,对系统利用率高,运行的容器数量远高于虚拟机数量。
4:隔离性更弱,容器是进程间隔离,容器间共享主机操作系统内核,隔离性比虚拟化差,虚拟机是系统级隔离,不同虚拟机之间有完全独立的隔离空间,每个虚拟机有独立的操作系统内核,不存在信息共享。
5:docker的安全性更弱,虚拟机的租户权限是分离的,而容器的租户和宿主机等同。
6:快速创建、删除:虚拟机是分钟级别的,容器是秒级的。
7、可管理程序:虚拟化技术有成熟的管理工具,而docker的集中管理工具还不算成熟。
8:交付、部署:虚拟机可以通过镜像实现环境交付的一致性,但镜像分发无法体系化。
pod:是k8s管理的最小单位
一个pod包含一组容器,一个pod不会跨多个家节点。一个pod是一组紧密相关的容器,这些容器一起运行在同一个节点上,同一个Linux命名空间上。pod相当于逻辑主机,每个pod都有自己的ip地址。pod内的容器共享相同ip和端口空间。每个pod都有一个pause容器,这与其他业务容器没有关系,这个pause容器状态代表这个pod的状态。pause一个ip和存储卷,pod其他容器共享这个ip和存储,这样就做到了文件共享和互信。
区别:pod是一组容器,包括一个pause和若干业务容器,是k8s最小单元。
kubernetes(k8s):是开源的容器集群管理系统。构建于docker技术之上,为容器化应用提供资源调度、服务发现、部署运行、扩缩容、负载平衡等功能,目的是让容器化应用部署变得简单、高效。
k8s:管理大量容器容器编排调度引擎,用来解决容器部署、调度、伸缩等
1简化应用部署
2提高硬件资源利用率
3健康检查和自修复
4自动扩容缩容
5服务发现和负载均衡k8s都有一个master主节点(控制面板)负责管理和控制集群节点(node:被管理节点)