Wpis z mikrobloga

@tenji: W zasadzie to @yggdrasil ma sporo racji. Klasyczna wirtualizacja oparta na hypervisorach (poziomu 1 czy 2) faktycznie wirtualizuje zasoby (stąd nazwa).

Kontenery natomiast (w szczególności linuksowe) bazują na izolacji zasobów poprzez kernelowe namespace'y. Najstarsza forma konteneryzacji (czy raczej izolacji) w Linuksach to przecież chroot. Z namespace'ami poszło nam sporo poczekać i tak na prawdę izolację kontenerową tworzy para namespace'ów oraz cgroupsów (namespace'y do izolacji czy mappingu użytkowników, części filesystemu, hostname
Jednak konteneryzacja na bare - metalu nie da ci tak wysokiego poziomu bezpieczeństwa tak "out of the box". Hypervisor bardzo łądnie izoluje VMki (choć łatwo to pochrzanić provisionując je nieumiejętnie) natomiast kontenery (np. Docker) domyślnie nie tworzą absolutnie (!) żadnej warstwy bezpieczeństwa.


@Maciek-z-Krakowa: fajnie to wyjaśniłeś, właśnie o to mi chodziło. Pytanie odnośnie bezpieczeństwa, chodzi o dostawanie się z jednego kontenera do drugiego czy inne aspekty? Bo myślę nad rozwiązaniem na
@Lipathor: w zasadzie wszystko masz wyjaśnione tutaj w szczegółach: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_atomic_host/7/html-single/container_security_guide/index

Z głowy jednak tak na szybko:

1. nie uruchamiaj kontenerów w trybie privileged (zawsze jako jakiś konkretny user)
2. najlepiej uruchamiaj kontenery w trybie RO, RW tylko na wybranych, podpiętych volumenach
3. dropuj wszelkie capabilities i zezwalaj na te faktycznie potrzebne
4. usuń suida z obrazów (jeśli posiadasz takowe binarki w obrazach): https://blog.tutum.co/2015/02/03/hardening-containers-disable-suid-programs/
5. najlepiej poustawiaj jakiś management zasobami na cgroupsach
@Lipathor wiem, że temat stary, ale dodam swoje jakby ktoś kiedyś szukal

Mieszanie w to zestawienie Mesos nie ma sensu. Mesos jest resource managerem i zupełnie inaczej wygląda na nim zarządzanie zasobami.

Niemniej ciekawym pomysłem jest k8s zarządzany przez mesos (np. projekt d2iq)