Контейнеры Linux и Виртуализация: с точки зрения ядра

Шашанк Мохан Джейн

 Состав исполнителей

Издания на английском языке
Автор
Шашанк Мохан Джейн
Директор- распорядитель, Apress Media LLC
Велмоуид Спахр
Редактор приобретения
Спандейна Чаттерджи
Редактор по разработке
Мэтью Муди
Координирующий редактор
Ширкант Вишвейкарма
Разработка обложки
eStudioCalamar
Pixabay

 Об авторе

 


Шашанк Мохан Джейн работал в области ИТ отрасли почти 20 лет, причём в основном в областях облачных вычислений и распределённых систем. Он имеет острый интерес к технологиям виртуализации, безопасности и сложных, динамичных систем. Шашанк имеет 25 программных патентов (и ещё много для публикации) на своё имя в области облачных вычислений, IoT и машинного обучения. Он выступал на большом числе известных конференций по облачным решениям. Шашанк также обладает сертификатами Sun, Microsoft и ядра Linux.

 О рецензенте

 


Суреш Винкейтейсубреймейньян имеет степень доктора философии Индийского института исследований в области криминалистики, сжатия и шифрования изображений. Он на протяжении 20 лет был близок к опыту машинного обучения и анализа данных. Области его интересов включали распознавание кстественных языков, сложных сетевых сред и вычислительного распознавания. В настоящее время он является ведущим специалистом по анализу данных в Walmart Labs. Ранее он выступал экспертом в R&D по исследованиям и разработкам SAP Labs и Accenture AI.

 Благодарности

Моим родителям, жене и дочери за то, что они проявили ко мне терпение при создании этой книги и всегда вносили положительный вклад.

 Введение

Мотивация этой книги восходит корнаями к словам лауреата Нобелевской системы и знаменитого учёного Ричарда Фейнмана: "То, чего я не спопобен создать, я не понимаю."

Основная идея этой книги состоит в разработке глубокого понимания мира виртуализации и, в особенности, прыгнуть вниз в кроличью нору, что касается контейнеров Linux. Читатели получат некое понимание того, что происходит на уровне операционной системы Linux, когда дело доходит до обсуждения виртуализации и контейнеров Linux. Эта книга изучает те структуры данных, которые вовлечены в ту изоляцию, которую предоставляют контейнеры Linux, а также различные механизмы управления ресурсами.

Эта книга будет полезна для людей, работающих в области облачных вычислений. Будь они разработчиками или DevOps, эта книга может взять читателя в путешествие по тому что в действительности происходит под капотом. Она не покрывает уровень API, но рассматривает что происходит ниже этого API при использовании контейнеров Linux. Прочитав эту книгу и пройдя её примеры, читатели получат пристойное понимание того как рабоатет мир контейнеров и будут способны лучше оптимизировать свои развёртывания и оптимизировать их.

 Содержание

О книге
Состав исполнителей
Об авторе
О техническом рецензенте
Благодарности
Введение
Глава 1. Основы виртуализации
История виртуализации
Что такое виртуализация?
Виртуализация на основе ВМ
Виртуализация на основе контейнеров
Гипервизоры
VMM
Модель устройства
Виртуализация памяти
Таблицы теневых страниц
Вложенные таблицы страниц с аппаратной поддержкой
Виртуализация ЦПУ
Двоичная трансляция в случае полной виртулизации
Паравиртуализация
Виртуализация ввода/ вывода
Полная виртуализация
Паравиртуализация
Глава 2. Гипервизоры
Набор интрукций Intel Vt-x
QEMU
Создание ВМ при помощи модуля KVM
Взаимодействие данных на основе Vhost
Что представляет собой eventfd
Альтернативные механизмы виртуализации
Unikernels
Проект Dune
novm
Итоги подходов альтернативной виртуализации
Глава 3. Пространства имён
Типы пространств имён
UTS
PID
Mount
Network
IPC
Cgroup
Time
Пространства имён Linux
Добавление устройства в Пространство имён
Выводы
Глава 4. Cgroups
Создание простой cgroup
Типы Cgroup
Cgroup CPU
Cgroup блочного ввода/ вывода
Понимание Fairness
Понимание Throttling
Глава 5. Многоуровневая файловая система
Пример файловой системы
Несколько слов о Псевдофайловых системах
Многоуровневые Файловые системы
Единая файловая система
OverlayFS
Глава 6. Создание простой контейнерной инфраструктуры
Пространство имён UTS
Установка Golang
Сборка контейнера при помощи Пространства имён
Добавление дополнительных пространств имён
Запуск программы оболочки внутри контейнера
Предоставление файловой системы Root
Монтирование файловой системы Proc
Включение сетевой среды для контейнера
Небольшой пример построения виртуальной сети
Включение Cgroup для контейнера
Выводы
Указатель