Google представив проект gVisor – новий відкритий runtime для забезпечення ізольованого запуску контейнерів, які відповідають вимогам специфікації Open Container Initiative (OCI).
gVisor може застосовуватися як прошарок в Docker і Kubernetes замість наявного штатного runtime, й хоча він ще не підтримує усі системні виклики Linux, він має працювати з застосунками для Node.js, Java 8, MySQL, Jenkins, Apache, Redis, MongoBD та іншими.
gVisor позиціонується як легке рішення для виконання контейнерів, яке забезпечує подібний до систем віртуалізації рівень ізоляції. Ключовим компонентом gVisor є власне ядро, яке створене на мові Go і реалізує більшість системних викликів ядра Linux.

Ядро gVisor забезпечує роботу ізольованого оточення контейнера. У кожному подібному оточенні використовується своє ядро і набір віртуалізованих пристроїв, окремих від хост-системи та інших контейнерів.
Ядро gVisor обробляє всі системні виклики від застосунків, ізолюючи їх від решти системи. При цьому, gVisor не просто транслює системні виклики застосунків у запити до ядра Linux, а самостійно реалізує основні примітиви ядра (сигнали, ФС, блокування, мапінг пам'яті, канали без імені, тощо) і вибудовує обробники системних викликів на основі даних примітивів, якими наділяються застосунки.
Оскільки ядро gVisor реалізовано в формі звичайного процесу, то для реалізації функціональності примітивів виконується звернення до обмеженого набору штатних системних викликів основного ядра Linux (за аналогією з UML – User Mode Linux).
Ще немає коментарів