Содержимое
🖥Как устроены конвейеры CI/CD💻 Схема взаимодействия контейнерных технологий в рамках работы с привычными инструментами может быть представлена так: 1️⃣Утилита podman с помощью Libpod API обращается к библиотеке libpod, которая вызывает низкоуровневый container runtime (по умолчанию утилиту runc) containers/podman Podman Commands 2️⃣Утилита docker с помощью Docker API вызывает сервис dockerd docker/cli Docker CLI reference Docker architecture Docker API 3️⃣Сервис dockerd вызывает сервис containerd Dockerd reference 4️⃣Сервис containerd вызывает низкоуровневый container runtime (по умолчанию утилиту runc) containerd/containerd Containerd Scope and principles 5️⃣Сервис kubelet с помощью протокола CRI вызывает сервис container runtime (например, containerd или crio) Container Runtime Interface Container Runtimes CRI: the Container Runtime Interface 6️⃣Сервис containerd вызывает низкоуровневый container runtime (по умолчанию runc) Containerd CRI 7️⃣Сервис cri-o вызывает низкоуровневый container runtime (по умолчанию runc) cri-o/cri-o 8️⃣Утилита OCI container runtime (по умолчанию runc): 🔘runc с помощью библиотеки libcontainer создает контейнер по runtime-spec, взаимодействуя с подсистемами ядра Linux – пространствами имен (namespaces) и контрольными группами (cgroups) opencontainers/runc runc man opencontainers/runc/libcontainer 🔘crun создает контейнер по runtime-spec, взаимодействуя с подсистемами ядра Linux – пространствами имен (namespaces) и контрольными группами (cgroups) containers/crun @DevOPSitsec