10分钟看懂Docker和K8S

10分钟看懂Docker和K8S
在容器技术以前,业界的网红是虚拟机。虚拟机技术的表明,是VMWare和OpenStack
虚拟机,就是在你的操做系统里面,装一个软件,而后经过这个软件,再模拟一台甚至多台“子电脑”出来。
Docker自己并非容器,它是建立容器的工具,是应用容器引擎。
第一句,是“Build, Ship and Run”。
第二句口号就是:“Build once,Run anywhere(搭建一次,处处能用)”。
Docker技术的三大核心概念,分别是:
镜像(Image)
容器(Container)
仓库(Repository)
我刚才例子里面,那个放在包里的“镜像”,就是Docker镜像。而个人背包,就是Docker仓库。我在空地上,用魔法造好的房子,就是一个Docker容器。
说白了,这个Docker镜像,是一个特殊的文件系统。它除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(例如环境变量)。镜像不包含任何动态数据,其内容在构建以后也不会被改变。
负责对Docker镜像进行管理的,是Docker Registry服务(相似仓库管理员)
K8S,就是基于容器的集群管理平台,它的全称,是kubernetes。
一个K8S系统,一般称为一个K8S集群(Cluster)。
这个集群主要包括两个部分:
一个Master节点(主节点),Master节点主要仍是负责管理和控制。
一群Node节点(计算节点),工做负载节点,里面是具体的容器。

 

Master节点包括API Server、Scheduler、Controller manager、etcd。

 

API Server是整个系统的对外接口,供客户端和其它组件调用,至关于“营业厅”。
Scheduler负责对集群内部的资源进行调度,至关于“调度室”。
Controller manager负责管理控制器,至关于“大总管”。
而后是Node节点。

 

Node节点包括Docker、kubelet、kube-proxy、Fluentd、kube-dns(可选),还有就是Pod。
Pod是Kubernetes最基本的操做单元。一个Pod表明着集群中运行的一个进程,它内部封装了一个或多个紧密相关的容器。除了Pod以外,K8S还有一个Service的概念,一个Service能够看做一组提供相同服务的Pod的对外访问接口。这段不太好理解,跳过吧。
Docker,不用说了,建立容器的。
Kubelet,主要负责监视指派到它所在Node上的Pod,包括建立、修改、监控、删除等。
Kube-proxy,主要负责为Pod对象提供代理。
Fluentd,主要负责日志收集、存储与查询。