Docker与虚拟机、k8s扫盲篇
Docker是创造容器的工具,是应用容器引擎
虚拟机:VMWare、openStack
容器和虚拟机的对比
Build, Ship and Run:搭建、发送、运行
Build once,Run anywhere
三大核心概念:
镜像(Image):是一个特殊的文件系统。它除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(例如环境变量)。镜像不包含任何动态数据,其内容在构建之后也不会被改变
仓库(Repository):负责对Docker镜像进行管理,对镜像文件有一定的要求校验
容器(container)
举例:建造一栋房子,直接复制,放入背包,转移到另外一个地方复制出另一套一模一样的房子。(那个放在包里的“镜像”,就是Docker镜像。而我的背包,就是Docker仓库。我在空地上,用魔法造好的房子,就是一个Docker容器)
Kebernetes(google创建)是容器的集群管理平台
一个K8S系统,通常称为一个K8S集群(Cluster),集群包含两部分master节点(主节点),node节点(计算机节点)
master节点包含:
API Server是整个系统的对外接口,供客户端和其它组件调用,相当于“营业厅”
Scheduler负责对集群内部的资源进行调度,相当于“调度室”
Controller manager负责管理控制器,相当于“大总管”
node节点包含:
Docker,创建容器
Kubelet,主要负责监视指派到它所在Node上的Pod,包括创建、修改、监控、删除等。
Kube-proxy,主要负责为Pod对象提供代理。
Fluentd,主要负责日志收集、存储与查询。
Pod是Kubernetes最基本的操作单元。一个Pod代表着集群中运行的一个进程,它内部封装了一个或多个紧密相关的容器(除了Pod之外,K8S还有一个Service的概念,一个Service可以看作一组提供相同服务的Pod的对外访问接口)