Dlaczego warto używać lxc zamiast chroot?

10

Jeden serwer Ubuntu obsługuje 3 aplikacje w oddzielnych domenach.
Każda aplikacja ma własnych programistów.
Twórcy aplikacji należą do grupy linuksowej „sftp”.
chrootumożliwia dostęp do hasła sftp dla każdego programisty aplikacji.

/home/app1/prod
/home/app2/prod
/home/app3/prod

W sshd_config

Match Group sftp  
  PasswordAuthentication yes
  ChrootDirectory %h
  ForceCommand internal-sftp
  AllowTcpForwarding no

Naszym problemem jest luka w programowaniu w jednej aplikacji, powodująca problemy w pozostałych 2 aplikacjach.

Czy powinniśmy używać kontenera LXC zamiast chroot? Dlaczego? Czy zmiana w kontenerach LXC będzie przezroczysta dla twórców aplikacji?

csi
źródło
2
Jedyne, co chrootrobi, to zmiana katalogu głównego procesu. Nie oferuje izolacji ani niczego innego.
Zoredache

Odpowiedzi:

14

Linux Containers (LXC) to metoda wirtualizacji na poziomie systemu operacyjnego do uruchamiania wielu izolowanych instalacji serwera (kontenerów) na jednym hoście sterującym. LXC nie zapewnia maszyny wirtualnej, ale raczej środowisko wirtualne, które ma swój własny proces i przestrzeń sieciową. Jest podobny do chroot, ale oferuje znacznie więcej izolacji.

Kontenery Linux mają kilka funkcji / zalet:

Zalety:

Lepsza izolacja w porównaniu do chroot (więzienie chroot). Niskie koszty ogólne. LXC zużywa minimalne zasoby pod względem pamięci RAM i miejsca na dysku twardym bez konieczności instalowania systemu-gościa na maszynie wirtualnej (VMWare / VirtualBox / KVM).

Aplikacje i usługi (serwery) działają z natywną prędkością.

Istnieje wsparcie dla kontenerów Linux w libvirt.

Kontenery Linux działają dobrze z btrfs.

Ale jest też minus:

Kontenery systemu Linux uruchamiają procesy systemu Linux w jądrze systemu Linux. Oznacza to, że możesz uruchomić Linuksa (kontener Fedory na hoście Ubuntu), ale nie inne systemy operacyjne (nie BSD / OSX / Windows).

Nie ma interfejsów graficznych (GUI) do konfigurowania kontenerów lub zarządzania nimi.

Brakuje dokumentacji dotyczącej instalowania i konfigurowania kontenera. Konfiguracja kontenera wymaga skromnej wiedzy technicznej i umiejętności (oraz dużej dawki cierpliwości).

Abhishek Anand Amralkar
źródło
1
które jądro jest używane w LXC? (ten od gospodarza czy gościa?)
Francesco
4
Wiele zalet i wad porównuje LXC z pełną wirtualizacją, co nie ma znaczenia dla zadanego pytania, a może nawet wprowadza w błąd.
Roger Dueck
@Francesco, z LXC (i ogólnie kontenerami Linux), jest tylko jedno jądro - jądro hosta. Niektóre wyjątki od tego to na przykład Docker działający w systemie MacOS lub Windows, ponieważ używają jądra Linux działającego na maszynie wirtualnej; jednak wszystkie kontenery Linux na tych platformach nadal używają tego samego jądra.
wściekłość