The OpenNET Project / Index page

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

Первый выпуск Incus, форка системы управления контейнерами LXD

08.10.2023 21:30

Представлен первый выпуск проекта Incus, в рамках которого сообществом Linux Containers развивается форк системы управления контейнерами LXD, созданный старой командой разработчиков, когда-то создавшей LXD. Код Incus написан на языке Go и распространяется под лицензией Apache 2.0.

Напомним, что сообщество Linux Containers курировало разработку LXD до того, как компания Canonical решила развивать LXD отдельно как корпоративный проект. Целью форка называется предоставление управляемой независимым сообществом альтернативы проекту LXD, подконтрольному компании Canonical. В рамках проекта Incus также планируется устранить некоторые концептуальные ошибки, допущенные при разработке LXD, которые ранее невозможно было исправить без нарушения обратной совместимости.

Incus предоставляет средства для централизованного управления контейнерами и виртуальными машинами, развёрнутыми как на одном хосте, так и в кластере из нескольких серверов. Проект реализован в виде фонового процесса, принимающего запросы по сети через REST API и поддерживающего различные бэкенды хранилищ (дерево директорий, ZFS, Btrfs, LVM), снапшоты со срезом состояния, live-миграцию работающих контейнеров с одной машины на другую и средства для хранения образов контейнеров. В качестве runtime для запуска контейнеров используется инструментарий LXC, в состав которого входит библиотека liblxc, набор утилит (lxc-create, lxc-start, lxc-stop, lxc-ls и т.п.), шаблоны для построения контейнеров и набор привязок для различных языков программирования. Изоляция осуществляется при помощи штатных механизмов ядра Linux (пространства имён, cgroups, Apparmor, SELinux, Seccomp).

По функциональности первый выпуск Incus, соответствующий недавно выпущенному обновлению LXD 5.18 и сфокусирован прежде всего на переименовании и реорганизации кодовой базы, а также на удалении устаревших возможностей. При этом в новой версии отмечаются и специфичные для Incus изменения в интерфейсе командной строки и API, которые невозможности было включить в LXD из-за требований по обеспечению обратной совместимости. В дальнейшем разработчики планируют переносить из кодовой базы LXD полезные улучшения и исправления, развивая также и свои оригинальные новшества, которые при желании компания Canonical сможет портировать в LXD.

Наиболее заметные изменения:

  • Осуществлён переход на встраиваемый SQL-движок Cowsql - форк Dqlite, созданный изначальным автором Dqlite по тем же причинам, что и Incus (желание вывести проект из под полной зависимости от Canonical). Cowsql совместим с SQLite, поддерживает репликацию данных, автоматическое восстановление после сбоев и обеспечение отказоустойчивости через разнесение обработчиков на несколько узлов.
  • В интерфейс командной строки добавлена команда "incus snapshot" для управления снапшотами (заменяет отдельные lxc-команды snapshot и restore). Через "incus snapshot" можно запускать операции создания, удаления, показа списка, переименования и восстановления снапшотов.
  • Изменена логика обработки команд "incus config trust add" и "incus cluster add" которые теперь принимают один аргумент c именем и возвращают корректный токен. Операции работы с сертификатом через команду "incus config trust add" перенесены в отдельную команду "incus config trust add-certificate".
  • Добавлена команда "incus admin", избавившая администратора от необходимости прямого обращения к lxc и lxd. Доступны следующие подкоманды:
    • incus admin cluster
    • incus admin init
    • incus admin recover
    • incus admin shutdown
    • incus admin waitready
  • Удалены устаревшие точки обращения к API /1.0/containers и /1.0/virtual-machines, на смену которым пришёл /1.0/instances.
  • Устройство /dev/lxd замещено на /dev/incus, упоминания в коде lxd заменены на incus.
  • Тип элементов конфигурации сервера заменён с "map[string]any" на "map[string]string". Уделён устаревший метод аутентификации core.trust_password (на смену пришла аутентификация на базе токенов), мешавший использованию типа "map[string]string".
  • Из API удалены устаревшие функции *Container, на смену которым после реализации управления виртуальными машинами пришли функции *Instance (например, вместо CreateContainer следует использовать CreateInstance).
  • Добавлена утилита lxd-to-incus для миграции с LXD на Incus (поддерживается автоматическое преобразование файлов конфигурации, начиная c версии LXD 4.0 и заканчивая 5.18). Перенос кластеров пока не поддерживается.
  • В качестве минимально поддерживаемой версии языка Go заявлен выпуск 1.20.
  • Прекращена поддержка некоторых возможностей, завязанных на Ubuntu или зависящих от устаревшего или неподдерживаемого ПО:
    • Удалена поддержка обвязок Ubuntu Fan (bridge.mode, fan.overlay_subnet, fan.underlay_subnet, fan.type), зависящих от патчей к ядру, используемых только в Ubuntu.
    • Удалена ФС shiftfs, поддерживаемая только в пакетах с ядром из Ubuntu виртуальная ФС для сопоставления точек монтирования с пространствами имён идентификаторов пользователей (user namespace).
    • Удалена поддержка системы аутентификации Candid, специфичной для продуктов Canonical.
    • Удалена поддержка проприетарной реализации механизма аутентификации RBAC (Role Based Access Control), созданной Canonical на базе Macaroons и Candid.
    • Удалены компоненты для интеграции с MAAS (Metal-as-a-Service), инструментарием для быстрого развертывания конфигураций Ubuntu.
    • Удалена концепция доступа к серверу при помощи заслуживающего доверия пароля (core.trust_password).


  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Выпуск системы управления контейнерами LXD 5.17
  3. OpenNews: Форк LXD будет развиваться под эгидой сообщества Linux Containers
  4. OpenNews: Создан форк системы управления контейнерами LXD
  5. OpenNews: LXD будет развиваться компанией Canonical отдельно от проекта Linux Containers
  6. OpenNews: Выпуск системы управления контейнерами LXC 5.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59891-incus
Ключевые слова: incus, lxd, lxc
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (22) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Golangdev (?), 22:46, 08/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –12 +/
    > старой командой разработчиков, когда-то создавшей LXD
    > развивается форк

    что как-бэ намекает на ненужность

    k8s всех победил

     
     
  • 2.5, Аноним (5), 06:10, 09/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Кто-то пользуется. Не ясно правда кто это и зачем он это делает.
     
     
  • 3.9, Аноним (9), 11:53, 09/10/2023 [^] [^^] [^^^] [ответить]  
  • +7 +/
    глупцы! зачем молоток если есть микроскоп, правильно?

    а может всё же для каждой задачи свой инструмент?

    ЗЫ. для необразованных, lxc/lxd/openvz и k8s/docker-swarm это разные инструменты для разных задач

     
     
  • 4.21, Пряник (?), 14:59, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    До сих пор непонятно зачем нужен k8s/swarm. Я видел обычные сайты из nginx/apache/mysql на одном хосте. Можно разнести nginx/apache или mysql на два хоста (кластер, шардирование, балансировка, high-availability). А вот покажите мне для чего нужен k8s/swarm, так чтобы я это потрогал, погонял, поделал запросы. Хочу увидеть реально работающую вещь, а не заумные словечки, вроде "микросервисы".
     
     
  • 5.24, Golangdev (?), 21:48, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    помимо модных микросервисов,

    для повышения утилизации серверов

    если вы - большая компания, то при стандароной загрузке в 20% вы будете терять деньги, а именно, платить за то, что простаивает

    также, как следствие вышенаписанного, для быстрого масштабирования при пиковых нагрузках, например с помощью автоскейлера

    также кубер предоставляет нормальный DNS, scaling aware, грубо говоря вам в большинстве случаев для будет достаточно его TCP/UDP лоад-балансировки (просто обращаетесь к доменному имени (микро)сервиса, и вас не заботит, сколько там реплик этого (микро)сервиса), и не надо обставлять всё нгинксами/хапроксями.

    если вы маленькая компания,
    > размера Можно разнести nginx/apache или mysql на два хоста

    то кубер вам и скорее всего не нужен.

     
  • 2.8, Аноним (9), 11:46, 09/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    как обычно, сравниваем теплое с мягким!
     
  • 2.15, Golangdev (?), 21:38, 09/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Кто-то вообще из работодателей нужнается в этом вашем LXD ?

    Хоть одно предприятие имеет LXD в продакшене ?

    Как я вижу, опять же, LXD никому не нужен, всем нужен k8s.

    Или я не прав ?)

     
     
  • 3.18, trunk (?), 04:01, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не у всех новое железо.
    И незачем покупать новое, если старое идеально работает.
     
  • 3.19, Anonim (??), 10:11, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я пользуюсь, постоянно. Именно потому, что ниже "ниже прог входа". В продакшене не видел. lxc - это эволюция, от chroot, kvm и понимается сразу и создать контейнер я могу сам любой конфигурации из любого дистра. Докер, это революция. И по моим наблюдениям куча народу его использует без понимания (я тоже похвастаться не могу, не моя область). Но из структуры делать дебаг очевидно проще, чем из пространства имён. А подляны подбрасывать очевидно проще из имён. Потому они ReadOnly.  
     
  • 3.20, Аноним (20), 13:07, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Все кто использует proxmox нуждаются в lxd. Это много, очень много.
     
     
  • 4.22, Пряник (?), 15:02, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В проксмоксе не LXD, вроде, а просто LXC. LXD это же обвязка вокруг LXD просто, а в проксмоксе своя обвязка вокруг контейнеров.
     
  • 4.25, Аноним (25), 12:42, 11/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >  Все кто использует proxmox нуждаются в lxd. Это много, очень много.

    Нет. ldx - это конкурент proxmox, пытается делать то же самое и на тех же технологиях (в частности, lxc). Canonical пытается отжать рыночек у PVE, но получается так себе.

     
  • 3.23, Пряник (?), 15:08, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это вообще разные вещи. LXD создаёт независимые контейнеры, к тому же с кучей процессов внутри. А твой k8s поднимает один контейнер - одно приложение (в зависимости от роли). Может ещё настраивает сетку между ними, общие тома.
     
  • 2.16, microcoder (ok), 22:24, 09/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > k8s всех победил

    У меня никак не смог он победить. Увы и ах. Нешмагла )))

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

     

  • 1.3, Аноним (3), 03:38, 09/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    У LXD намного ниже порог входа, даже для кластера.
     
  • 1.4, Аноним (3), 03:57, 09/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    https://www.perplexity.ai/search/2d80822a-9b4a-44ed-ae2b-ad158e22f1ca?s=u

    An LXD cluster is a group of LXD servers that share the same distributed database and can be managed uniformly ...

     
     
  • 2.6, пох. (?), 09:20, 09/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    "но зачем?!"
     
     
  • 3.7, фнон (?), 09:50, 09/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    патамушта можем!
    (разработчики любого попенсорс велосипеда)
     

  • 1.10, voiceofreason (?), 12:23, 09/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    ... а приложения дальше будем под шинду писать. Зачем нам приложения? Надо больше серверной хрени, больше, ещё больше!
     
     
  • 2.11, Аноним (11), 14:20, 09/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Приложения для десктопа? Так это к другим людям, к раработчикам десктопных прикладух.
     
  • 2.12, Аноним (12), 18:17, 09/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не стоните.

    каждый пишет:
    1) то, за что ему платят
    и/или
    2) то, что ему интересно
    и/или
    3) то, что ему нужно

    Вам нужны приложения не на винде? Какие-то конкретные? Тогда или пишите сами или платите тому, кто сможет написать. Стенать "за ради всего прогрессивного человечества, за всё хорошее против всего плохого" или "мне за линукс обидно" - не надо.

     

  • 1.17, microcoder (ok), 22:28, 09/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А лидер проекта Стефан Грабэ на кого сейчас работает? Что-то не понятно. В инкусе он контрибьютор, но и в Каноникал он также. Зачем эта вся шизофрения? Не совсем понятно
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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