Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Введение в технологии контейнеров и Kubernetes

Покупка
Новинка
Артикул: 882737.01.99
Доступ онлайн
490 ₽
В корзину
В книге рассмотрены механизмы, обеспечивающие работу контейнеров в GNU/ Linux, основы работы с контейнерами при помощи Docker и Podman, а также система оркестрирования контейнеров Kubernetes. Помимо этого, книга знакомит c особенностями одного из самых популярных дистрибутивов Kubernetes — OpenShift (OKD). Данная книга рассчитана на ИТ-специалистов, знакомых с GNU/Linux и желающих познакомиться с технологиями контейнеров и системой оркестрации Kubernetes.
Маркелов, А. А. Введение в технологии контейнеров и Kubernetes : практическое руководство / А. А. Маркелов. - Москва : ДМК Пресс, 2019. - 196 с. - ISBN 978-5-97060-775-6. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2260370 (дата обращения: 08.10.2026). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
ВВЕДЕНИЕ
В ТЕХНОЛОГИИ
КОНТЕЙНЕРОВ
И KUBERNETES
Москва, 2019
Андрей Маркелов


УДК 004.51Kubernetes
ББК 32.972.1
 
M25
M25	 Маркелов А. А.
Введение в технологии контейнеров и Kubernetes. – М.: ДМК 
Пресс, 2019. – 194 с.: ил.
ISBN 978-5-97060-775-6
В книге рассмотрены механизмы, обеспечивающие работу контейнеров в GNU/ Linux, основы работы с контейнерами при помощи Docker 
и Podman, а также система оркестрирования контейнеров Kubernetes. 
Помимо этого, книга знакомит c особенностями одного из самых популярных дистрибутивов Kubernetes – OpenShift (OKD). 
Данная книга рассчитана на ИТ-специалистов, знакомых с GNU/Linux 
и желающих познакомиться с технологиями контейнеров и системой 
оркестрации Kubernetes.
Все права защищены. Любая часть этой книги не может быть воспроизведена 
в какой бы то ни было форме и какими бы то ни было средствами без письменного 
разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но, поскольку 
вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи 
с этим издательство не несет ответственности за возможные ошибки, связанные 
с использованием книги.
                                                   © Маркелов А. А., 2019
ISBN  978-5-97060-775-6            © Оформление, издание, ДМК Пресс, 2019


СОДЕРЖАНИЕ
Предисловие.................................................................................. 6
Благодарности.................................................................................... 6
Об авторе............................................................................................. 6
Рецензенты......................................................................................... 7
Предполагаемая аудитория............................................................... 7
О чем эта книга................................................................................... 8
Глава 1. Введение в контейнеры GNU/Linux.................. 10
Отличия контейнеров от виртуализации....................................... 10
История Docker................................................................................. 12
Архитектура Docker.......................................................................... 13
Установка Docker в GNU/Linux на примере CentOS 7..................... 17
Вопросы для самопроверки............................................................. 21
Список ссылок.................................................................................. 21
Глава 2. Основы работы с контейнерами Docker.......... 22
Поиск образов контейнеров и теги ................................................ 22
Запуск контейнеров......................................................................... 26
Изоляция контейнеров.................................................................... 31
Управление состоянием контейнеров............................................ 35
Обмен данными с контейнером по сети ....................................... 41
Просмотр информации о контейнере............................................ 43
Подключение к контейнеру постоянного хранилища................... 48
Публикация образов в реестре на примере Docker Hub................ 51
Импорт и экспорт образов контейнеров........................................ 56
Запуск контейнеров при помощи docker и systemd....................... 59
Вопросы для самопроверки............................................................. 61
Список ссылок.................................................................................. 61
Глава 3. Создание контейнеров 
при помощи Dockerfile............................................................. 62
Базовый синтаксис Dockerfile.......................................................... 62
Изучаем инструкции Dockerfile на примерах................................. 65


Содержание
Модифицируем Dockerfile................................................................ 68
Вопросы для самопроверки............................................................. 70
Список ссылок.................................................................................. 70
Глава 4. Работа с контейнерами Docker 
без движка Docker..................................................................... 71
Введение в podman, buildah и skopeo.............................................. 71
Запуск контейнеров при помощи podman..................................... 72
Запуск pod-модулей при помощи podman..................................... 73
Запуск контейнеров 
при помощи podman и systemd....................................................... 76
Использование утилиты buildah 
для создания образов контейнеров................................................ 77
Работа с образами при помощи skopeo.......................................... 81
Вопросы для самопроверки............................................................. 83
Список ссылок.................................................................................. 83
Глава 5. Введение в Kubernetes 
и установка кластера................................................................ 84
Знакомство с Kubernetes.................................................................. 84
Установка локального кластера....................................................... 89
Подготовка операционной системы........................................... 89
Установка управляющего узла.................................................... 92
Установка рабочих узлов............................................................. 96
Установка веб-консоли Kubernetes............................................. 98
Установка кластера в публичном облаке Microsoft Azure............ 100
Вопросы для самопроверки........................................................... 104
Список ссылок................................................................................ 104
Глава 6. Основы работы с Kubernetes.............................. 105
Основные объекты Kubernetes ..................................................... 105
Создаем первый pod-модуль......................................................... 107
Внедрения (Deployments)............................................................... 111
Разбор шаблона внедрения....................................................... 113
Масштабирование и откат внедрений...................................... 118
Доступ к pod-модулю извне кластера........................................... 120
Постоянные тома и запросы постоянных томов......................... 124
Словари конфигурации и секреты................................................ 131


Содержание
Вопросы для самопроверки........................................................... 137
Список ссылок................................................................................ 137
Глава 7. Расширенные возможности Kubernetes........ 138
Контроллеры DaemonSet и StatefulSet.......................................... 138
Выполнение заданий при помощи Job и CronJob........................ 144
Менеджер пакетов Helm................................................................ 148
Вопросы для самопроверки........................................................... 154
Список ссылок................................................................................ 154
Глава 8. Знакомство с OpenShift и OKD.......................... 155
Сравнение OpenShift и Kubernetes................................................ 155
Установка OpenShift при помощи cluster up................................ 156
Первое приложение в OpenShift ................................................... 159
Сборка приложений....................................................................... 168
Работа с шаблонами OpenShift...................................................... 177
Вопросы для самопроверки........................................................... 183
Список ссылок................................................................................ 183
Заключение................................................................................ 184
Ответы к вопросам для самопроверки.......................... 185
Приложения............................................................................... 186
Приложение 1. Листинг внедрения nginx..................................... 186
Приложение 2. Листинг шаблона OpenShift mysql-ephemeral.... 189


ПРЕДИСЛОВИЕ
Благодарности
В первую очередь я хочу поблагодарить мою жену Лену за терпение и поддержку, проявленные во время написания этой книги, 
как и всех предыдущих.
Также традиционная большая благодарность рецензентам книги.
Об авторе
Андрей Маркелов имеет пятнадцатилетний опыт преподавания 
как авторских курсов, так и авторизированных курсов по ИТ-технологиям таких компаний, как Red Hat и Microsoft.
Последние годы автор работает в качестве старшего системного архитектора компании Ericsson, специализируясь на облачных 
технологиях, инфраструктуре виртуализации сетевых функций 
(NFV-I) и технологиях управления контейнерами. До этого работал 
в качестве старшего системного архитектора в компании Red Hat, 
а также в крупных системных интеграторах России, получив более 
чем десятилетний опыт продаж, проектирования и внедрения сетевых и инфраструктурных решений.
Около шестидесяти публикаций в  российских ИТ-журналах 
(«Системный администратор», «Linux Format», «PC Week» и  др.). 
Автор книг «OpenStack. Практическое введение в облачную операционную систему» (ДМК Пресс, 2015, 2016, 2017, 2018 гг.), выдержавшей четыре издания, и вышедшей в 2016 году книги издательства Apress «Certified OpenStack Administrator Study Guide».
Андрей является сертифицированным архитектором Red Hat 
(RHCA) с 2009 года и имеет сертификаты Red Hat в таких технологиях, как OpenStack, OpenShift, RHV, CloudForms, Ansible, GlusterFS, 
настройка производительности, безопасности Linux-систем и др. 
Кроме того, автор имеет сертификаты Microsoft Certified System 
Engineer, Sun Certified System Administrator, Novell Certified Linux 


Предполагаемая аудитория 
Professional, Linux Professional Institute Certification (LPIC-1), Mirantis Certified OpenStack Administrator, OpenStack Foundation Certified OpenStack Administrator, Cisco Certified Network Associate.
Блог автора располагается по  адресу: http://markelov.blogspot.
com/. Его twitter-аккаунт @amarkelov.
Рецензенты
Артемий Кропачев (Artemii Kropachev) – технический директор 
(CTO) и главный ИТ-архитектор (Principal Architect) компании «Li9 
Technology Solutions», расположенной в г. Финикс, США. Артемий 
имеет более 15 лет опыта в ИТ, который покрывает проектирование 
комплексных ИТ-систем, разработку программного обеспечения, 
SDN/NFV, облачные решения и системы автоматизации. Артемий 
занимается проектированием и внедрением проектов на базе технологий Red Hat. Основной фокус направлен на контейнеризацию 
приложений на базе Red Hat OpenShift Container Platform. Артемий 
является автором книг «Ansible for IT Experts», «Learn OpenShift», 
«Learn DevOps», «Learn Linux». Кроме того, Артемий на 2019 г. является обладателем самого высокого сертификационного статуса 
по инфраструктурным продуктам Red Hat в мире – Red Hat Certified 
Architect Level XX in Infrastructure.
Василий Ангапов (Vasiliy Angapov) – старший архитектор компании Bell Integrator, г. Москва. Василий имеет более 10 лет опыта в ИТ, долгое время занимался внедрением облачных решений 
компании Red Hat. В настоящее время успешно занимается проектированием и внедрением различных микросервисных приложений на  базе Kubernetes в  облачных платформах Google Cloud 
и Amazon Web Services.
Предполагаемая аудитория
Данная книга рассчитана на ИТ-специалистов, работающих с GNU/
Linux и  желающих познакомиться с  технологиями контейнеров 
и системой оркестрации Kubernetes.
От читателя требуются базовые навыки работы с операционной 
системой GNU/Linux. Умение работать в командной строке и знание основных команд GNU/Linux обязательны.


Предисловие 
О чем эта книга
Книга состоит из восьми глав и знакомит читателя с  механизмами, обеспечивающими работу контейнеров в GNU/Linux, основами работы с контейнерами при помощи Docker и Podman, а также 
системой оркестрирования контейнеров Kubernetes. Помимо этого, книга знакомит c особенностями одного из самых популярных 
дистрибутивов Kubernetes – OpenShift (OKD).
Глава 1. Введение в контейнеры GNU/Linux
Первая глава вводит читателя в предметную область и историю 
технологий контейнеров в GNU/Linux. Также обсуждается архитектура «движка» Docker. В этой главе читатель создает лабораторный 
стенд и устанавливает Docker в GNU/Linux на примере дистрибутива CentOS 7.
Глава 2. Основы работы с контейнерами Docker
Во второй главе читатель познакомится с базовыми операциями и основными командами утилиты docker. Рассмотрены такие 
темы, как поиск образов контейнеров и теги, запуск контейнеров, 
управление состоянием контейнеров и их изоляция, работа с хранилищем, сетью и реестром.
Глава 3. Создание контейнеров при помощи Dockerfile
В этой главе обсуждается файл инструкций для сборки контейнеров Dockerfile и сам процесс создания новых образов.
Глава 4. Работа с контейнерами Docker без движка Docker
В данной главе рассматриваются инструменты, изначально разработанные для альтернативной среды исполнения контейнеров 
CRI-O: podman, buildah и skopeo. Все три утилиты не требуют наличия запущенного демона и независимы от Docker.
Глава 5. Введение в Kubernetes и установка кластера
В пятой главе читатель познакомится с архитектурой системы 
оркестрации контейнеров Kubernetes и  создаст кластер, состоящий из трех узлов, для последующих экспериментов в процессе 
обучения. 
Глава 6. Основы работы с Kubernetes
В данной главе описаны основные объекты Kubernetes. Читатель на практике познакомится с  созданием pod-модулей, внедрений и  их масштабированием. Рассмотрена работа с  томами 


О чем эта книга 
и запросами на постоянные тома, а также секреты, карты конфигурации и сервисы Kubernetes.
Глава 7. Расширенные возможности Kubernetes
Седьмая глава знакомит с контроллерами StatefulSet, DaemonSet, Job и  CronJob. Также рассмотрена работа с  Ingress и  Ingress 
Controller.
Глава 8. Знакомство с OpenShift и OKD
В данной главе читатель знакомится с  одним из  популярных 
дистрибутивов Kubernetes, разрабатываемых компанией Red Hat, – 
OpenShift/OKD. Дается сравнение OpenShift и Kubernetes, показана установка тестовой среды при помощи команды oc cluster up, 
и продемонстрирована работа с основными объектами OpenShift.


Глава 1.
ВВЕДЕНИЕ 
В КОНТЕЙНЕРЫ GNU/LINUX
В первой главе мы поговорим об истории технологий контейнеров 
в GNU/Linux и архитектуре «движка» Docker.
Отличия контейнеров от виртуализации
В отличие от «вертикального» абстрагирования в случае виртуализации, контейнеры, в частности контейнеры Docker, с рассмотрения которых мы начнем, обеспечивают «горизонтальное» 
разбиение операционной системы на отдельные изолированные 
окружения. За  счет того, что в  каждом контейнере, в  отличие 
от  виртуализации, обходятся без использования отдельного экземпляра операционной системы, значительно ниже накладные 
расходы. Минусом является тот факт, что вы не сможете на одном 
узле в контейнерах запускать разные операционные системы, например Windows и GNU/Linux.
Также необходимо отметить, что зачастую контейнеры используются поверх виртуальных машин, которые могут располагаться 
как в частном, так и в публичном облаке.
Итак, контейнеры обеспечивают часть преимуществ виртуальных машин, при этом используя меньше аппаратных ресурсов. 
Преимущества использования контейнеров, по сравнению с виртуальными машинами, следующие:

 горизонтальная изоляция приложений;

 меньшие накладные расходы на инфраструктуру;

 изоляция не на уровне операционной системы, а на уровне 
окружения приложения (необходимые библиотеки);

 скорость развертывания приложений и  скорость перезапуска приложений;

 параллельная работа нескольких окружений одного приложения;


Доступ онлайн
490 ₽
В корзину