容器网络技术深入解析
1. 容器技术背景与 CRI
在容器领域,众多公司推动了技术创新。行业致力于确保容器生态成为开放的 OCI 项目,方便大家以各种方式运行容器。Kubernetes 通过采用 CRI - O 接口,助力塑造了这一努力。理解容器组件对容器部署管理员和开发者至关重要,例如在 Kubernetes 1.20 中,dockershim 支持将被弃用,管理员使用 dockershim 的 Docker 运行时会被弃用,但开发者仍可用 Docker 构建符合 OCI 的容器来运行。首个 CRI 实现是 dockershim,它在 Docker 引擎前提供了一层抽象。
2. 容器原语
2.1 runC 的作用
无论使用 Docker 还是 containerd,runC 负责启动和管理实际的容器。
2.2 控制组(Control Groups)
控制组是 Linux 内核特性,用于限制、统计和隔离资源使用。它最初在 Linux 2.6.24 版本发布,允许管理员控制特定进程的 CPU、内存等资源。以下是不同子系统对资源的控制:
| 子系统 | 功能 |
| ---- | ---- |
| CPU | 保证进程有最少的 CPU 份额 |
| 内存 | 为进程设置内存限制 |
| 磁盘 I/O | 通过设备的 cgroup 子系统控制 |
| 网络 | 由 net_cls 维护,标记离开 cgroup 的数据包 |
lscgroup 命令行工具可列出系统中所有的 cgroup。runC 在容器创建时会为其创建 cgroup,cg
超级会员免费看
订阅专栏 解锁全文
5万+

被折叠的 条评论
为什么被折叠?



