其他
链接:https://www.cnblogs.com/huaweiyun/p/17925782.html近期工作上开始接触了相关容器化的内容,因此整理学习了一堆有关容器化的知识,特此进行分享。首先,理解K8S和容器,首先需要学习以下它的发展历史,才能逐步理解容器的意义和作用。阶段一:隔离文件——chroot命令的诞生在1979年,Unix系统引入了一个革命性的命令,它允许系统管理员将进程的根目录锁定在指定的位置,从而有效地限制了该进程访问的文件系统范围。这个命令成为了早期容器技术的基石,因为它实现了基本的文件系统隔离,确保进程不能访问其指定根目录之外的任何文件或目录。这种隔离能力对于安全性至关重要,特别是在监控潜在的恶意活动时。通过创建一个隔离的环境,或所谓的“黑盒”,系统管理员能够更安全地运行和监控可疑的代码或程序。因此这个以文件形式进行隔离的命令为现代容器技术奠定了一个重要的思想基础:隔离。后续的很多演变也都是基于“隔离”进行变化。阶段二:隔离访问——namespace名称空间在2002年,Linux社区迎来了一个重要的里程碑:引入了Linux名称空间(namespace)功能。名称空间是一种轻量级的虚拟化技术,它允许不同的进程拥有自己的独立视图,包括文件系统、进程ID(PID)、用户ID(UID)、网络接口等关键系统资源。因此每个进程都在一个独立的环境中运行,这意味着在一个名称空间中所做的更改(例如文件系统的修改、网络配置等)不会影响到其他名称空间。这种隔离不仅提高了系统的安全性,因为它限制了进程可能造成的潜在影响,也使得多个应用能够在同一个物理服务器上同时运行,而互不干扰。在容器化的上下文中,名称空间提供了实现容器隔离的关键技术。因为每个容器实际上就是一组不同的名称空间和一些其他资源(如下文提到的cgroups)的集合。阶段三:隔离资源——cgroups控制组特性Cgroups(控制组)是Linux内核的一个特性,最初由Google工程师Paul