一、Namespace
Linux Namespace是Linux内核提供的一种机制,它用于隔离不同进程的资源视图,使得每个进程都拥有独立的资源空间,从而实现进程之间的隔离和资源管理。通过使用Namespace,可以在一个物理主机上创建多个独立的虚拟环境,每个环境都有自己的进程、文件系统、网络和用户视图。这种隔离机制有助于减少系统环境变更带来的影响,以及避免系统安全性方面的问题。
Linux内核包含了不同类型的Namespace,每个Namespace都有自己的独特属性。
1.1,常见的Namespace类型包括:
- Mount Namespace:隔离进程的文件系统访问范围,不同Mount Namespace下的进程会有不同的目录层次结构。
- UTS Namespace:隔离主机名和域名。
IPC Namespace:隔离进程间通信,防止容器内的进程访问宿主机或其他容器的信号量、消息队列和共享内存。 - PID Namespace:隔离进程ID,确保容器内的进程拥有独立的进程编号空间。
- Network Namespace:为容器提供独立的网络环境。
- User Namespace:提供用户和组ID的隔离,使得容器中的进程拥有自己的用户和组环境,与主机隔。
1.2,经常使用场景:故障注入,混沌工程测试
二、Cgroups(控制组)
Cgroups作为Linux内核的一项强大功能,在限制进程使用资源和实现容器资源隔离方面发挥着重要作用。通过合理利用Cgroups进行资源管理和隔离,