LXC:Linux 容器虚拟技术(Linux container)
在容器技术之前,业界的网红是虚拟机。
- 虚拟机,就是在你的操作系统里面,装一个软件,然后通过这个软件,再模拟一台甚至多台“子电脑”出来。
- “子电脑”和“子电脑”之间,是相互隔离的,互不影响。
- 虚拟机属于虚拟化技术。
Docker 这样的容器技术,也是虚拟化技术,属于轻量级的虚拟化。
虚拟机虽然可以隔离出很多“子电脑”,但占用空间更大,启动更慢。
容器技术恰好没有这些缺点。它不需要虚拟出整个操作系统,只需要虚拟一个小规模的环境(类似“沙箱”)。
启动时间很快,几秒钟就能完成。而且,它对资源的利用率很高(一台主机可以同时运行几千个 Docker 容器)。
此外,它占的空间很小,虚拟机一般要几GB到几十GB的空间,而容器只需要MB级甚至KB级。
1. Docker
-
Docker 本身并不是容器,而是创建容器的工具,是应用容器的引擎; -
两句口号,搞懂 Docker: Build, Ship and Run (搭建、发送、运行) Build once, Run anywhere(搭建一次,到处都能用) -
Docker 技术的三大核心概念:
- 镜像(Image);
- 容器(Container);
- 仓库(Repository);
-
镜像:是一个特殊的文件系统:
- 它提供容器运行时所需的程序、库、资源、配置文件等;
- 不包含任何动态数据,其内容在构建之后也不会改变;
- 负责对 Docker 镜像进行管理的,是 Docker Registry 服务(类似仓库管理员);
2. k8s
-
k8s 是为了对 Docker 及容器进行更高级更灵活管理的一套管理系统。 -
k8s:基于容器的集群管理平台,Kubernetes(希腊语,舵手或领航员); -
一个 K8S 系统,通常称为一个 K8S 集群(Cluster);
- 一个 Master 节点(主节点):负责管理和控制;
- 一群 Node 节点(计算节点):工作负载节点,里面的具体内容是容器。
-
Master 节点:
- API Server 是整个系统的对外接口,供客户端和其它组件调用,相当于“营业厅”。
- Scheduler 负责对集群内部的资源进行调度,相当于“调度室”。
- Controller manager 负责管理控制器,相当于“大总管”。
-
Node 节点:
- Pod 是 Kubernetes 最基本的操作单元。 一个 Pod 代表着集群中运行的一个进程,它内部封装了一个或多个紧密相关的容器。
- 除了 Pod 之外,K8S 还有一个 Service 的概念,一个 Service 可以看作一组提供相同服务的 Pod 的对外访问接口。
- Docker 创建容器的; Kubelet,主要负责监视指派到它所在 Node 上的 Pod,包括创建、修改、监控、删除等。
- Kube-proxy,主要负责为 Pod 对象提供代理。 Fluentd,主要负责日志收集、存储与查询。
|