Информация об изменениях

Сообщение Re[3]: Что сложно дается ChatGPT? от 23.01.2023 14:12

Изменено 23.01.2023 14:15 vsb

Re[3]: Что сложно дается ChatGPT?
Здравствуйте, Shmj, Вы писали:

vsb>>Сразу замечу. На основе Docker в 2023 году куб поднимать это полная глупость. Куб с докера переехал давно и современные версии на докере не работают. Сегодня куб надо понимать на containerd.io.


S>А вот containerd описывается же Docker-совместимым форматом? Есть ли containerd -hub по аналогии с Docker-hub, или откуда оно берет образы?


TLDR все образы можно брать как есть из докер хаба или из любого другого реестра образов, оно будет работать.

LR

Есть понятие OCI-образа. По сути это то, что называют докер-образами. То бишь некий стандарт, в котором распространяются образы. И есть рантайм, который эти образы умеет запускать.

Изначально это всё вроде как придумал докер. Потом эту идею реализовали как минимум один раз в Red Hat в продукте podman. По сути это что-то вроде замены докера (докер это сильно коммерческий продукт, podman это более свободная альтернатива). Может ещё кто-то реализовывал. На самом деле там ничего особо сложного нет, вся суть в идее.

Со временем докер разделили архитектурно. Выделили containerd — это что-то вроде низкоуровневого компонента, который, собственно, и запускает контейнеры из образов и сам docker как обвязка вокруг containerd, предоставляющая знакомый интерфейс пользователям. Помимо containerd есть аналогичная реализация crio от Red Hat. Предполагаю, что это часть проекта podman но точно не знаю. Вроде есть и другие рантаймы.

Надо понимать, что "внизу" все эти контейнеры реализованы в ядре Linux через механизм namespaces, cgroups и тд. Т.е. всё, что делает этот рантайм — это запускает процесс в линуксе с определёнными параметрами. Ну я упрощаю, наверное, но суть такова.

Помимо запуска есть процесс скачивания образа. Тут есть тоже стандартный протокол Docker Registry, который все используют. Собственно docker hub по этому протоколу и работает.

Кубернетес изначально сделали, как слой поверх докера. Ну просто потому, что докер был первый. Со временем, когда появились альтернативы докеру и сам функционал докера стал избыточным, придумали концепцию CRI — Container Runtime Interface. Собственно Кубернетес сейчас и использует этот CRI, а с другой стороны используется реализация этого интерфейса в виде containerd (самый популярный с большим отрывом), crio и вроде ещё что-то есть.

То бишь если нужно скачать образ, запустить образ с определёнными параметрами, удалить контейнер и тд — кубернетес просто передаёт эти команды через CRI и получает какие-то результаты.
Re[3]: Что сложно дается ChatGPT?
Здравствуйте, Shmj, Вы писали:

vsb>>Сразу замечу. На основе Docker в 2023 году куб поднимать это полная глупость. Куб с докера переехал давно и современные версии на докере не работают. Сегодня куб надо понимать на containerd.io.


S>А вот containerd описывается же Docker-совместимым форматом? Есть ли containerd -hub по аналогии с Docker-hub, или откуда оно берет образы?


TLDR все образы можно брать как есть из докер хаба или из любого другого реестра образов, оно будет работать.

LR

Есть понятие OCI-образа. По сути это то, что называют докер-образами. То бишь некий стандарт, в котором распространяются образы. И есть рантайм, который эти образы умеет запускать.

Изначально это всё вроде как придумал докер. Потом эту идею реализовали как минимум один раз в Red Hat в продукте podman. По сути это что-то вроде замены докера (докер это сильно коммерческий продукт, podman это более свободная альтернатива). Может ещё кто-то реализовывал. На самом деле там ничего особо сложного нет, вся суть в идее.

Со временем докер разделили архитектурно. Выделили containerd — это что-то вроде низкоуровневого компонента, который, собственно, и запускает контейнеры из образов и сам docker как обвязка вокруг containerd, предоставляющая знакомый интерфейс пользователям. Помимо containerd есть аналогичная реализация crio от Red Hat. Предполагаю, что это часть проекта podman но точно не знаю. Вроде есть и другие рантаймы.

Надо понимать, что "внизу" все эти контейнеры реализованы в ядре Linux через механизм namespaces, cgroups и тд. Т.е. всё, что делает этот рантайм — это запускает процесс в линуксе с определёнными параметрами. Ну я упрощаю, наверное, но суть такова.

Помимо запуска есть процесс скачивания образа. Тут есть тоже стандартный протокол Docker Registry, который все используют. Собственно docker hub по этому протоколу и работает.

Кубернетес изначально сделали, как слой поверх докера. Ну просто потому, что докер был первый. Со временем, когда появились альтернативы докеру и сам функционал докера стал избыточным, придумали концепцию CRI — Container Runtime Interface. Собственно Кубернетес сейчас и использует этот CRI, а с другой стороны используется реализация этого интерфейса в виде containerd (самый популярный с большим отрывом), crio и вроде ещё что-то есть.

То бишь если нужно скачать образ, запустить образ с определёнными параметрами, удалить контейнер и тд — кубернетес просто передаёт эти команды через CRI и получает какие-то результаты.

На самом деле, подозреваю, что можно попробовать установить на одном компьютере и кубернетес и докер и использовать общий containerd (докер его тоже устанавливает и использует). Для продакшна такое делать точно не стоит, но может быть для чего-то может быть полезно.