1、docker引擎
多数技术人员在谈到Docker时,主要是指Docker引擎。Docker引擎是用于运行和编排容器的基础设施工具。
Docker引擎是运行容器的核心容器运行时。其他 Docker公司或第三方的产品都是围绕Docker引擎进行开发和集成的。
Docker的核心技术包括docker镜像、docker容器和docker仓库。
2、docker镜像
Docker镜像是一个特殊的文件系统,它提供了容器运行
时所需的程序、库、资源、配置等文件外,还包含了一
些为运行时准备的一些配置参数(如匿名卷、环境变量、
用户等)。
镜像不包含任何动态数据,其内容在构建之后也不会被
改变。(只读属性),镜像结构如右图所示:

3、docker容器
镜像(Image)和容器(Container)有紧密的关系,镜像是静态的定义,容器是镜像运行时
的实体。容器可以被创建、启动、停止、删除、暂停等。
容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命
名空间。因此容器可以拥有自己的root文件系统、自己的网络配置、自己的进程空间,甚至
自己的用户 ID 空间。
容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下
操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。也因为这种隔离的特
性,很多人初学 Docker 时常常会混淆容器和虚拟机。
4、docker仓库
镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。
一个 Docker Registry 中可以包含多个仓库(Repository),每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。
5、容器编排工具Kubernetes
K8S,就是Kubernetes,中文意思是舵手或导航员。Kubernetes这个单词很长,所以大家把中间8个字母缩写成8,就成了K8S。
K8S是一个容器集群管理系统,主要职责是容器编排(Container Orchestration)——启动容器,自动化部署、扩展和管理容器应用,还有回收容器。简单来说,K8S有点像容器的保姆。它负责管理容器在哪个机器上运行,监控容器是否存在问题,控制容器和外界的通信等等。
6、Kubernetes中的几个概念
k8s中几个重要概念,分别是:
| 概念 | 是什么 | 通俗类比 | 核心作用 | 你的理解对不对 |
|---|---|---|---|---|
| Cluster | 整个K8s集群 | 一个「云操作系统」 | 把所有物理/虚拟机聚合成一个资源池 | ✅ 就是所有东西的总和 |
| Master | 集群的控制节点 | 大脑/指挥部 | 调度、控制、API入口 | ✅ 发号施令的地方 |
| Node | 干活的工作节点 | 工人/士兵 | 实际跑容器的机器 | ✅ 执行命令的 |
| Pod | 最小的调度单元 | 一个「逻辑主机」 | 里面跑1个或多个容器(共享网络) | ⚠️ 不是容器本身,是容器的外壳 |
| Controller | 控制器的统称 | 各种监工 | 确保实际状态=期望状态 | ✅ 自动化的核心 |
| ReplicaSet (RS) | 副本控制器 | 保证有N个相同的Pod在跑 | 扩容、缩容、自愈 | ✅ 数量保障 |
| Deployment | 无状态应用管理 | 发布工具 | 管理RS、滚动更新、回滚 | ✅ 最常用的控制器 |
| DaemonSet | 节点守护者 | 每个Node上必须跑一个 | 日志收集、监控Agent | ✅ 每个节点都有 |
| Service | 稳定的访问入口 | 负载均衡 + 服务发现 | Pod的IP会变,Service不变 | ⚠️ 不是Pod,是访问Pod的入口 |
| Namespace | 逻辑隔离分区 | 虚拟集群 | 多租户隔离、环境隔离 | ✅ 物理集群里的逻辑隔间 |
┌─────────────────┐
│ Cluster │
│ (集群) │
└────────┬────────┘
│
┌──────────────┴──────────────┐
│ │
┌──────▼──────┐ ┌──────▼──────┐
│ Master │ │ Node │
│ (大脑) │ │ (工人) │
└─────────────┘ └──────┬──────┘
│
┌───────┴───────┐
│ Pod │
│ (最小单元) │
└───────┬───────┘
│
┌──────────────────────┼──────────────────────┐
│ │ │
┌───────▼───────┐ ┌───────▼───────┐ ┌───────▼───────┐
│ Deployment │ │ DaemonSet │ │ ReplicaSet │
│ (无状态应用) │ │ (节点守护) │ │ (副本控制) │
└───────────────┘ └───────────────┘ └───────────────┘
│ │ │
└──────────────────────┼──────────────────────┘
│
┌───────▼───────┐
│ Service │
│ (稳定入口) │
└───────────────┘
7、Kubernetes运行架构分析
Kubernetes属于主从分布式架构,主要由Master Node和Worker Node组成,以及包括客户端命令行工具kubectl和其
它附加项。
基本架构如下图所示

master节点之上运行着的后台服务有:
kube-apiserver、
kube-scheduler
kube-controller-manager
Etcd
pod网络( flannel )等。

node节点之上运行着的后台服务有:
Kubelet
kube-proxy
pod网络( flannel )

发表回复