[参考]https://www.cnblogs.com/bakari/p/8037105.html
1.Linux Container容器技术(简称LXC):
** 定义**:是一种内核轻量级的操作系统层虚拟化技术,它解决了PAAS层的技术实现。
** 本质**:它本质上是使用了Linux的namespace实现资源隔离和Cgroup实现资源限制,彼此间相互隔离的若干个linux进程的集合。
由两大机制来保证实现
1. NameSpace(命名空间)
原理:
提供了一种内核级别隔离系统资源的方法,通过将系统的全局资源放在不同的Namespace中,来实现资源隔离的目的(实现了进程之间的隔离功能)
(允许一个进程以及它的子进程从共享的宿主机内核资源(网络栈、进程列表、挂载点等)里获得一个仅自己可见的隔离区域,让同一个Namespace下的所有进程感知彼此变化,对外界进程一无所知,仿佛运行在一个独占的操作系统中;)
Linux使用了6种namespace
- mount namespace(文件系统空间)
- UTS namespace(主机域名空间)
让容器有自己的hostname和domain - name IPC namespace(进程间通信空间)
- PID namespace(进程ID空间)
- network namespace
让容器拥有独立的网卡、IP、路由等资源 - user namespace
2.Cgroups(控制组)
原理:对资源进行管理(用来限制、控制与分离一个进程组群的资源(如CPU时间、内存、网络带宽、磁盘输入输出等)
优点
1.轻量级:只打包了必要的BIn/Lib
2.秒级部署
3.易于移植
** 主要应用场景**
1.Web应用服务
Web应用服务是使用最广泛的一类服务,典型的架构是前端一个Tomcat + Java服务,后端mysql数据库
2.微服务架构
3.持续集成和持续部署(CI/CD)
IT 基础设施优化
1.6 一些虚拟网络设备
- tap LInux系统中的二层设备
只能处理二层的以太网帧 - tun
是一个网络层(IP)的点对点设备,只能处理三层的IP数据包。
LInux原生支持5种三层隧道(IPIP、GRE)
1.6.1 tap/tun的应用
常用于隧道通信,比如vpn,包括tunnel和应用层的IPsec等。(比较有名的两个开源项目是openvpn和VTun)
2.容器支持的技术
- 1.容器网络 docker network(docker原生的网络解决方案) flannel、weave、calico(第三方开源解决方案)
- 2.服务发现 作用:保存容器集群中所有微服务最新的信息 典型解决方案:etcd、consul、zookeeper
- 3.监控
- 4.数据管理
- 5.日志管理
- 6.安全性 OpenSCAP是容器安全工具
3.docker容器网络
3.1 使用的网络技术有
- Network Namespace