The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск инструментариев управления контейнерами LXC 6.0, Incus 6.0 и LXD 5.21.1, opennews (??), 04-Апр-24, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


38. "Выпуск инструментариев для управления контейнерами LXC 6.0, ..."  +/
Сообщение от microcoder (ok), 04-Апр-24, 17:11 
Всё не так :))

Путаница эта давно идёт и никак не заканчивается, поэтому команда incus сделала фундаментальное изменение в проекте (обратно не совместимое), чтобы в том числе это исправить.

История эволюции Linux container'ов примерно следующая:

* LXC - Это какая-то древняя реализация контейнеров с реализацией библиотки liblxc
* LXD/LXC - это следующая эволюция в которой отвязались от liblxc, переписали всё на Go и сделали разделение проекта на серверную часть (LXD - Deamon) и клиентскую части (LXC - Client). Сервер, точнее демон, это ничто иное как RESTful API сервис принимающий запросы в JSON, клиент (LXC) это собственно клиент который генерирует запросы в JSON и отправляет их демону (серверу) и получает от него ответ. Примерно так.
* Incus это форк LXD/LXC

Чем отличается LXD/LXC от Incus? Тем, что первый поддерживается командой Canonical, второй поддерживаетеся сообществом и пока существенной разницы между ними нет. Есть ньюансы, но они не большие.

Ответить | Правка | Наверх | Cообщить модератору

39. "Выпуск инструментариев для управления контейнерами LXC 6.0, ..."  +/
Сообщение от Аноним (32), 04-Апр-24, 17:51 
> LXD/LXC - это следующая эволюция в которой отвязались от liblxc... клиентскую части (LXC - Client)...

Вы уверены? На сайте Incus пишут:

> Incus is a container and virtual-machine manager. Based on LXC for containers...
> LXC is a well-known Linux container runtime that consists of tools, templates, and library and language bindings.

Вот тут явно пишут, что Incus зависит от LXC: https://linuxcontainers.org/incus/docs/main/requirements/#lxc

> Incus requires LXC 5.0.0 or higher

Я считаю, что вы заблуждаетесь. LXC – не "клиент", а как раз таки бэкенд для контейнеров. Таким же образом, как и QEMU используется в качестве бэкенда для виртуальных машин в Incus/LXD.

А то что "клиентская" команда у них "lxc" называется, так на это не обращайте внимания, оно путает.

Ну и финальный аккорд касательно "отвязались от liblxc", тут вы прямо таки не правы: https://linuxcontainers.org/incus/docs/main/explanation/inst.../

> Containers are implemented through the use of liblxc (LXC).

Ответить | Правка | Наверх | Cообщить модератору

42. "Выпуск инструментариев для управления контейнерами LXC 6.0, ..."  +/
Сообщение от microcoder (ok), 04-Апр-24, 18:29 
>> LXD/LXC - это следующая эволюция в которой отвязались от liblxc... клиентскую части (LXC - Client)...
> Вы уверены? На сайте Incus пишут:

Всё что вы написали, это именно та ВЕСКАЯ причина (просто космическая без приувеличения!) :) по которой следовало бы сделать fork :) Документация просто видимо не была корректно написана изначально и мир уже не исправить :) Я сам в шоке. Теперь всё по порядку:

> Вот тут явно пишут, что Incus зависит от LXC: https://linuxcontainers.org/incus/docs/main/requirements/#lxc

1) Видимо это следует воспринимать как LXD/LXC, так как никаких `liblxc` у меня нет в пакете и в системе тоже:

```
[dv@manjaro ~]$ pacman -Ql incus
incus /usr/lib/systemd/system/incus-user.service
incus /usr/lib/systemd/system/incus-user.socket
incus /usr/lib/systemd/system/incus.service
incus /usr/lib/systemd/system/incus.socket
incus /usr/lib/sysusers.d/incus.conf
```

К слову, нужно понимать ещё и то, что раньше на этом сайте были разделы LXC, LXD. Сейчас Incus, LXC, а раздел LXD удалён. Видимо авторы решили называть LXD от Каноникал - LXC. Это просто проклятие какое-то с названиями!! ))))

Также, изначальный (древний как мамонт LXC) насколько мне известно ничего не знает о виртуальных машинах и в частности о QEMU. Этим он и отличается от LXD/LXC.

Также, указанная зависимость по указанной вами ссылке (Incus requires LXC 5.0.0 or higher) видимо указывает на пакет `lxcfs` от которой он зависим! Тут уже стоит принять таблетки от срыва ))) Потому как уже становится всё горячее! ))))

После того как авторы сайта linuxcontainers.org переформатировали сайт, теперь трудно сослаться где у них было указано, что LXD это Daemon, а LXC - client. Но пойдём на сайт убунты и посмотрим на эту страницу вниз:

https://documentation.ubuntu.com/lxd/en/latest/explanation/l.../

> To control LXD, you typically use two different commands: lxd and lxc.

то есть, вызовите справку `lxc --help` и узнаете, что это КЛИЕНТ для LXD:

https://documentation.ubuntu.com/lxd/en/latest/reference/man...

> А то что "клиентская" команда у них "lxc" называется, так на это не обращайте внимания, оно путает.

Вот в том то и дело, что нужно различать:

1) LXC (liblxc)
2) LXD/LXC (все клиентские команды будут начинаться с lxc, поэтому гуглить надо будет именно так)
3) Incus

И финальный ваш аккорд:

https://linuxcontainers.org/incus/docs/main/explanation/inst.../

Тут я прокоментировать не могу. Видимо документация не соответствует или что-то имеется ввиду другое, поскольку никаких liblxc в моей системе не было с LXD и нет с Incus.

Ответить | Правка | Наверх | Cообщить модератору

44. "Выпуск инструментариев для управления контейнерами LXC 6.0, ..."  +/
Сообщение от Аноним (32), 04-Апр-24, 18:46 
Прямо по вашей же ссылке "пойдём на сайт убунты и посмотрим на эту страницу вниз" пишут:

> Under the hood, LXD uses LXC to create and manage the containers.

Они явно пишут, что есть LXC, состоящий из утилит, библиотеки и прочего:

> LXC is a low-level user space interface for the Linux kernel containment features. It consists of tools (lxc-* commands), templates, and library and language bindings.

А есть LXD, который является альтернативой клиентским утилитам LXC, но внутри всё тот же LXC:

> LXD is a more intuitive and user-friendly tool aimed at making it easy to work with Linux containers. It is an alternative to LXC’s tools and distribution template system, with the added features that come from being controllable over the network. Under the hood, LXD uses LXC to create and manage the containers.

LXC-клиент, который идёт в комплекте к LXD, это просто способ взаимодействия с LXD, который уже использует LXC-бэкенд для контейнеров (или QEMU для ВМ).

Собственно, приведённые вами ссылки как раз таки подтверждают мою точку зрения, достаточно просто почитать.

У меня на openSUSE LXD зависит от liblxc. Как у вас там – не знаю (предположение пальцем в небо – вдруг там статически слинковано, ну кто знает).

> $ zypper --no-refresh info --requires lxd | grep lxc
> lxcfs
> lxcfs-hooks-lxc
> liblxc.so.1()(64bit)

Ответить | Правка | Наверх | Cообщить модератору

48. "Выпуск инструментариев для управления контейнерами LXC 6.0, ..."  +/
Сообщение от microcoder (ok), 04-Апр-24, 19:05 
Да, надо признать я нашёл такой пакет у себя:

>[dv@manjaro ~]$ pacman -Ql lxc | grep liblxc
>lxc /usr/lib/liblxc.so
>lxc /usr/lib/liblxc.so.1
>lxc /usr/lib/liblxc.so.1.7.0

Но управлять через него контейнеры не получится, во всяком случае у меня это не выходит. Он просто ничего не знает о контейнерах. Видимо да, не отвязались ещё от liblxc, но планы вроде как были.

В любом случае, проектом LXC не получится пользоваться в составе LXD, так как с LXD поставляется свой клиент LXC (C - как раз указывает на слово Client).

Поэтому всё же надо различать:

1) LXC (низкоуровневый, тот что с командами lxc-*)
2) LXD/LXC (который имеет демона и клиента lxc --help)
3) Incus (форк LXD, а не LXC)

Ответить | Правка | Наверх | Cообщить модератору

50. "Выпуск инструментариев для управления контейнерами LXC 6.0, ..."  +/
Сообщение от Аноним (32), 04-Апр-24, 19:07 
> Поэтому всё же надо различать:

Да, я именно об этом я изначально и говорил.

> Он просто ничего не знает о контейнерах.

Тоже всё правильно, потому что ими управляет LXD/Incus. У них и есть функционал для миграции из "чистого" LXC на LXD/Incus. Но внутри остаётся именно LXC-бэкенд.

Ответить | Правка | Наверх | Cообщить модератору

54. "Выпуск инструментариев для управления контейнерами LXC 6.0, ..."  +/
Сообщение от microcoder (ok), 04-Апр-24, 19:29 
Так это о том, о чём я и писал изначально в посте

https://www.opennet.ru/openforum/vsluhforumID3/133307.html#38

Просто единственное, я не знал, что они ещё не отвязались от старого проекта. Но сути это не меняет. Сейчас есть 3 проекта и их надо "разделять".

P.S. Спасибо за беседу. Теперь стало более яснее.

Ответить | Правка | Наверх | Cообщить модератору

46. "Выпуск инструментариев для управления контейнерами LXC 6.0, ..."  +/
Сообщение от Аноним (32), 04-Апр-24, 18:57 
Называется «отвязались от liblxc»:

https://github.com/lxc/incus/blob/main/internal/server/insta...

Ответить | Правка | К родителю #42 | Наверх | Cообщить модератору

43. "Выпуск инструментариев для управления контейнерами LXC 6.0, ..."  +/
Сообщение от microcoder (ok), 04-Апр-24, 18:38 
> Ну и финальный аккорд касательно "отвязались от liblxc", тут вы прямо таки
> не правы: https://linuxcontainers.org/incus/docs/main/explanation/inst.../
>> Containers are implemented through the use of liblxc (LXC).

Перевод дословный: Контейнеры были реализованы через использование liblxc. Что это значит? Какие контейнеры? Чьи? Мои? Или в репозитории образов? Что здесь имеют ввиду под контейнерами - я не знаю. Возможно старая документация которую некому поддержать.

Ответить | Правка | К родителю #39 | Наверх | Cообщить модератору

45. "Выпуск инструментариев для управления контейнерами LXC 6.0, ..."  +/
Сообщение от Аноним (32), 04-Апр-24, 18:47 
Там достаточно ясно написано. В LXD/Incus мы можем создавать instanc'ы, а они могут быть двух типов: либо контейнер, либо виртуальная машина. Первый вариант реализован поверх LXC. Второй вариант – поверх QEMU.
Ответить | Правка | Наверх | Cообщить модератору

47. "Выпуск инструментариев для управления контейнерами LXC 6.0, ..."  +/
Сообщение от Аноним (32), 04-Апр-24, 18:59 
> Контейнеры были реализованы через использование liblxc. Что это значит? Какие контейнеры?

Вот такие: https://github.com/lxc/incus/blob/main/internal/server/insta...

// The LXC container driver.
type lxc struct {
    ...
    c *liblxc.Container // Use d.initLXC() instead of accessing this directly.
    ...
}

Ответить | Правка | К родителю #43 | Наверх | Cообщить модератору

53. "Выпуск инструментариев для управления контейнерами LXC 6.0, ..."  +/
Сообщение от microcoder (ok), 04-Апр-24, 19:24 
Хорошо. Теперь я понял лучше. Значит получается следующее:

1) Проект LXC (https://linuxcontainers.org/lxc/getting-started/)

2) Проект LXD/LXC который зависит от LXC и имеет СВОЙ КЛИЕНТ LXC (то есть два LXC с пользовательской стороны). Клиент с командами lxc-* который не работает с пользователем, но поставляется, и клиент lxc который работает с LXD. Таким образом это никак не отменяет, что LXC это клиент для LXD, тем более справка это подтверждает вызовом lxc --help

3) Incus - Форк LXD, кторый также поставляется с LXC, но со старым, низкоуровневым LXC, а не с тем, что поставлялся в LXD как клиент. Сейчас LXC это incus, а работа с демоном (lxd) превратилась в incus admin *

Мда...

Ответить | Правка | Наверх | Cообщить модератору

57. "Выпуск инструментариев для управления контейнерами LXC 6.0, ..."  +/
Сообщение от Хочу стать девопсом пусть меня научат (?), 04-Апр-24, 21:07 
Разве Incus - это не форк LXD? IMHO Incus от LXD концептуально ничем не отличается, только деталями реализации и лицензированием.
Ответить | Правка | Наверх | Cообщить модератору

59. "Выпуск инструментариев для управления контейнерами LXC 6.0, ..."  +/
Сообщение от microcoder (ok), 04-Апр-24, 21:28 
> Разве Incus - это не форк LXD?

Форк LXD, так у меня и написано в предыдущем посте. Смотрите внимательнее:

> 3) Incus - Форк LXD

Ответить | Правка | Наверх | Cообщить модератору

41. "Выпуск инструментариев для управления контейнерами LXC 6.0, ..."  +1 +/
Сообщение от Аноним (32), 04-Апр-24, 17:55 
> отвязались от liblxc

Ну или они действительно отвязались, но документацию не обновили… Но пока не увидел иного, буду придерживаться точки зрения из документации.

Ответить | Правка | К родителю #38 | Наверх | Cообщить модератору

49. "Выпуск инструментариев для управления контейнерами LXC 6.0, ..."  +/
Сообщение от Аноним (32), 04-Апр-24, 19:05 
> LXD/LXC - это следующая эволюция в которой отвязались от liblxc

Ваша версия не сходится с тем, что по документации LXD и Incus явно зависят от liblxc. Даже пусть доки устарели – если бы они изначально ещё в LXD ушли от liblxc, как вы описали, то и в самой документации изначально такого бы не было.

> Install Incus from source
>
> Follow these instructions if you want to build and install Incus from the source code.
>
> We recommend having the latest versions of liblxc (>= 5.0.0 required) available for Incus development. Additionally, Incus requires a modern Golang (see Go) version to work.

Куда ни посмотреть, я не могу найти ни одного подтверждения вашей версии.

Если у вас есть ссылки, где описано именно то что вы рассказываете, то поделитесь, пожалуйста. Тема действительно запутанная, и из-за названий, и со всеми этими форками…

Ответить | Правка | К родителю #38 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру