1. Docker&K8S区别

区别:1、k8s是一种开放源码的容器集群管理系统,而Docker是一种开放源码的应用容器引擎;2、k8s是一套自动化部署工具,可以管理docker容器是容器编排层面的,docker是容器化技术,是容器层面的。

2. 概念

2.1 Docker

Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。一句话总结就是,从仓库中拉取镜像,利用镜像生成容器。

Docker技术的三大核心概念,分别是:镜像(Image)、容器(Container)、仓库(Repository)。相关概念解释如下:

宿主机,Host,运行Docker所在的物理机,是Docker运行的系统环境。

镜像,Image,相当于一个程序模板,通过这个模板可以生成很多个相似的容器。可以理解为Java中的类,它本身不具备执行运行的能力,是一个对象抽象的模板。每个镜像可以有多个版本,用tag来区分。镜像可以通过Dockerfile来构建。

容器,Container,Docker运行的最小单位对象。它是通过镜像实例化出来的一个可运行对象。容器的修改,可以提交反作用于镜像,更新这个容器的模板。

仓库,Repository,用于存储管理镜像的仓库,类似于git管理代码的仓库一样,可以管理多版本的镜像。
在这里插入图片描述

2.2 Master

aster 节点结构如下:apiserver 即 K8s 网关,所有的指令请求都必须要经过 apiserver。Scheduler 调度器,使用调度算法,把请求资源调度到某一个 Node 节点。Controller 控制器,维护 K8s 资源对象。etcd 存储资源对象。

2.3 Node

Kubernetes 的 Node 是真正运行业务负载的,每个业务负载会以 Pod 的形式运行。等一下我会介绍一下 Pod 的概念。一个 Pod 中运行的一个或者多个容器,真正去运行这些 Pod 的组件的是叫做 kubelet,也就是 Node 上最为关键的组件,它通过 API Server 接收到所需要 Pod 运行的状态,然后提交到我们下面画的这个 Container Runtime 组件中。

2.4 Pod

简单介绍Pod的概念。首先,Pod运行在一个被称为节点 (Node)的环境中,这个节点既可以是物理机,也可以是私有云或者公 有云中的一个虚拟机,通常在一个节点上运行几百个Pod;其次,在每 个Pod中都运行着一个特殊的被称为Pause的容器,其他容器则为业务容 器,这些业务容器共享Pause容器的网络栈和V olume挂载卷,因此它们 之间的通信和数据交换更为高效,在设计时我们可以充分利用这一特性 将一组密切相关的服务进程放入同一个Pod中;最后,需要注意的是, 并不是每个Pod和它里面运行的容器都能被映射到一个Service上,只有提供服务(无论是对内还是对外)的那组Pod才会被映射为一个服务。

3. 推荐文章

Kubernetes 深入学习(一) —— 入门和集群安装部署
容器技术之Docker&K8S知识笔记
极客学院Docker视频教程

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐