Prowadzisz kontenery w maszynie wirtualnej?

15

Rozumiem, że kontenery są znacznie lżejsze niż maszyny wirtualne, ponieważ nie wirtualizują sprzętu, lecz po prostu izolują działające w nich oprogramowanie od oprogramowania działającego w innych kontenerach w systemie.

Moja sytuacja jest taka, że ​​nie mogę sobie pozwolić na zakup dodatkowych serwerów, a wszystkie serwery, które mam, działają na hiperwizorach. Muszę zapewnić co najmniej 6 „serwerów” do obsługi instancji stosunkowo małej aplikacji internetowej (każda instancja jest dla innego klienta). Byłoby marnotrawstwem udostępnienie nowej maszyny wirtualnej dla każdego z tych serwerów, dlatego planuję skonfigurować 2 maszyny wirtualne i wykonać jedną z następujących czynności:

  1. Uruchom wiele wystąpień aplikacji na każdej maszynie wirtualnej przy użyciu hostów wirtualnych (apache). lub
  2. Skonfiguruj kontenery na maszynach wirtualnych, które pozwolą mi odizolować środowiska.

Biorąc to pod uwagę, czy istnieje nieistotny narzut związany z systemami kontenerów, który sprawiłby, że użycie ich w maszynie wirtualnej byłoby złym pomysłem, czy też istnieje jakiś inny techniczny powód, dla którego nie chciałbym używać kontenerów?

Chris L.
źródło

Odpowiedzi:

13

Docker jest BARDZO lekki w porównaniu z maszyną wirtualną, a system maszyny wirtualnej powinien działać poprawnie w kontenery. Każdy pojemnik zasadniczo działa jako system izolowany, więc jest bardzo dobry do izolacji z punktu widzenia stabilności systemu. Na podstawie opisu brzmi to jak idealny przypadek użycia Dockera. Jeśli eksperymentujesz z Dockerem, upewnij się, że używasz najnowszej możliwej wersji, niektóre starsze mają w sobie dość nieprzyjemne luki. Podczas uruchamiania Dockera istnieją pewne względy bezpieczeństwa.

SELinux - SELinux jest świadomy kontenerów i automatycznie utworzy losowo nazwaną etykietę MCS dla każdego kontenera. Pomaga to zapewnić izolację, ponieważ pojemniki LXC nie są uważane za naprawdę „zawierające” same w sobie, chociaż to się poprawia.

Dyrektywa UŻYTKOWNIKA - W każdym pliku Docker zaleca się stosowanie dyrektywy UŻYTKOWNIKA, aby użytkownik działał jako konto inne niż root, domyślnie. Złap tutaj jest to, że użytkownik musi istnieć w systemie. Dla tego nowego użytkownika może to również frustrować pliki i katalogi do przeglądania / przeglądania, ale pomaga zmniejszyć ryzyko. Zazwyczaj zalecam utworzenie „konteneruser” lub czegoś podobnego w swoich systemach, aby zapewnić dostępność wspólnego użytkownika we wszystkich systemach, które nie pokrywają się z żadną inną częścią systemu.

W przeciwnym razie najtrudniejszą częścią jest zarządzanie kontenerami i ich aktualizacja w razie potrzeby.

theterribletrivium
źródło
3

czy istnieje nieistotny narzut związany z systemami kontenerowymi, który sprawiłby, że użycie ich w maszynie wirtualnej byłoby złym pomysłem

Czy pomaga Ci wydajność kontenerów Docker w VMware vSphere ?

czy jest jakiś inny techniczny powód, dla którego nie chciałbym używać pojemników?

Nie wiem ogólnie o Dockerze, ponieważ jeszcze z nim nie pracowałem. Myślę, że oprogramowanie do zarządzania wciąż nie ma dojrzałości w porównaniu do oprogramowania do zarządzania maszynami wirtualnymi ... ale jestem administratorem vSphere i dlatego prawdopodobnie jestem stronniczy.

Biorąc pod uwagę Docker na maszynach wirtualnych, CoreOS jest teraz oficjalnie obsługiwany w vSphere 5.5 . Więc przynajmniej VMware uważa, że ​​Docker / pojemniki na maszynach wirtualnych jest OK.

Mario Lenz
źródło