Uruchamianie kontenerów na QEMU

1

Mam konfigurację testową, którą próbuję migrować do korzystania z maszyn wirtualnych, a nie jak najgorzej, jak to możliwe. Istniejąca konfiguracja ma strukturę umożliwiającą uruchamianie wszystkiego w kontenerach (w szczególności LXC) i nie zniknie, więc jeśli to możliwe, chcę użyć istniejącej struktury na maszynach wirtualnych. Klaster maszyn wirtualnych, w którym działają inne usługi, to QEMU.

Naiwnie wydaje się to proste, ale ostatnia osoba w moim zespole, która spróbowała tego, zrezygnowała z zamieszania. Oto, co chcę wiedzieć:

  • Czy znane są problemy z uruchamianiem LXC w szczególności w maszynach wirtualnych QEMU lub ogólnie w maszynach wirtualnych?

  • Czy są jakieś przeszkody, których powinienem się spodziewać, a jeśli tak, to czego?

  • Czy bardziej prawdopodobne są problemy związane z naszą idiosynkratyczną konfiguracją niż ogólne problemy ze zgodnością?

Jakub Kopczyński
źródło

Odpowiedzi:

0

Zgodność

Nie powinno być żadnych problemów. QEMU nie różni się funkcjonalnie od zwykłego sprzętu do systemu gościa, a LXC nie robi nic, co wymaga specjalnego zachowania od sprzętu, którego QEMU nie emuluje.

Ale...

Prawdopodobnie nie chcesz tego robić, nie tylko dlatego, że zaszkodzi to wydajności, ale również znacznie skomplikuje zarządzanie. Prawdopodobnie powinieneś ponownie ocenić, dlaczego uważasz, że potrzebujesz maszyn wirtualnych pod kontenerami (lub jeszcze lepiej, jeśli już używasz kontenerów do części swojej infrastruktury, dlaczego musisz używać maszyn wirtualnych zamiast reszty). Chyba że naprawdędbając o migrację na żywo lub lepszą izolację obciążeń wykraczających poza to, co zapewniają pojemniki, prawdopodobnie lepiej jest po prostu dostosować resztę infrastruktury do korzystania z kontenerów, ponieważ zużywają mniej zasobów. Jedynym wyjątkiem są systemy zapewniające usługi dostępne dla świata zewnętrznego, które nigdy nie powinny znajdować się na wspólnym hoście, chyba że znajdują się na maszynie wirtualnej (ponieważ awaria kontenera dość często powoduje awarię hosta), a nawet wtedy powinna na ogół nie może być na wspólnym hoście z usługami wewnętrznymi.

OK, ale i tak naprawdę chcę to zrobić.

W takim przypadku pracuj nad dostosowaniem oprogramowania do używania maszyn wirtualnych zamiast kontenerów. Realistycznie, adaptacja nie powinna być trudna. W rzeczywistości dość łatwo jest ustawić QEMU tak, aby bezpośrednio uruchamiał jądro Linuksa (a zatem omijał potrzebę bootloadera, a wraz z nim potrzeby tabeli partycji), a kiedy to zrobisz, łatwo jest wyodrębnić ten podstawowy obraz kontenera do obraz systemu plików, którego można następnie użyć bezpośrednio jako dysku (nadal byłaby to nieco niższa wydajność niż kontenery, ale nigdzie tak źle, jak uruchamianie kontenerów wewnątrz maszyn wirtualnych).

Austin Hemmelgarn
źródło
Nie mam kontroli nad komputerami z maszynami wirtualnymi i nie mogę zdecydować, aby zamiast tego uruchamiały kontenery. Maszyny wirtualne nie są opcją dla wcześniej istniejących testów bez metalu, dlatego muszą kontynuować korzystanie z kontenerów. Chcę to zrobić, ponieważ alternatywą jest posiadanie dwóch równoległych infrastruktur do uruchamiania tych samych testów w różnych kontekstach.
Jacob Kopczynski