Изучение построения сетей Docker

Docker является реализацией контейнеров Linux, которая делает возможной создание лёгких переносимых проектов и сред промышленного уровня. Такие среды могут обновляться приращениями. Docker достигает этого за счёт правил локализации, таких как cgroup и пространства имён Linux помимо оверлейной файловой системы с перекрывающимися образами. Docker предоставляет сетевые примитивы, которые позволяют администраторам определять насколько различаются сетевые среды контейнеров для каждого приложения и соединять все его компоненты, а затем распространять их по большому числу серверов и гарантировать координацию между ними независимо от хоста или ВМ на которых они работают. Эта книга покажет вам как создавать, развёртывать и управлять виртуальной сетевой средой для соединения контейнеров, распределённых по одному или множеству хостов.

Радждип Дуа, Вайбхав Кохли, Сантош Кумар Кондури

Все права защищены. Никакая часть этой книги не может быть воспроизведена, сохранена в поисковой системе или передана в любой форме или любыми средствами без предварительного письменного разрешения издателя, за исключением случаев кратких цитат, встроенных в критических статьях и обзорах.

При подготовке этой книги были предприняты все усилия чтобы гарантировать точность представленной информации. Тем не менее, информация, содержащаяся в этой книге, продается без гарантии в явном или неявном виде. Ни авторы, ни Packt Publishing, ни у их дилеры и дистрибьюторы не будут нести ответственность за любые убытки, вызванные или предположительно вызванные прямо или косвенно этой книгой.

Packt Publishing пыталась предоставить информацию о товарных знаках обо всех компаниях и продуктов, упомянутых в данной книге для надлежащего использования капиталов. Тем не менее, Packt Publishing не может гарантировать точность этой информации.

Первая публикация на английском языке: 23 февраля 2016

Ссылка на продукт: 1190216

Опубликовано Packt Publishing Ltd.

Packt Publishing Ltd.

35 Livery Street

Birmingham B3 2PB, UK.

ISBN 978-1-78528-095-5

www.packtpub.com

Перевод: ООО "Модуль- Проекты" ("Modue- Pojects" Ltd.)

2016-04-20


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

Первого издания на английском языке
Авторы
Радждип Дуа
Вайбхав Кохли
Сантош Кумар Кондури
Рецензент
Джон Лангемак
Редактор выпуска
Кунал Парикх
Редактор сбора данных
Тушар Гупта
Редактор разработки содержания
Майур Паваникар
Технический редактор
Дхираж Чанданшив
Литературные редакторы
Джоанна МакМахон
Мадхусудан Училь
Координатор проекта
Нидхи Джоши
Корректор
Сафис Едитинг
Составитель указателя
Рекха Наир
Графика
Джейсон Монтейро
Координатор производства
Апарна Бхагат
Изготовитель переплёта
Апарна Бхагат

 Об авторах

Радждип Дуа

Вайбхав Кохли

Сантош Кумар Кондури

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

 О рецензенте

Джон Лангемак

 www.PacktPub.com

 Содержание

Вводные материалы
Авторские права
Состав исполнителей
Об авторах
Рецензенты
www.PacktPub.com
Оглавление
Предисловие
Что охватывает эта книга
Что вам нужно для этой книги
Для кого эта книга
Соглашения
Обратная связь с читателями
Поддержка пользователей
Загрузка кода примеров
Загрузка цветных изображений этой книги
Опечатки
Незаконное тиражирование
Вопросы
1. Букварь построения сети Docker
Построение сетей и Docker
Мосты Linux
Open vSwitch
NAT
IPtables
AppArmor/SELinux
Мост docker0
Режим --net default
Режим --net=none
Режим --net=container:$container2
Режим --net=host
Соответствие порта в контейнере Docker
Docker OVS
Сокет домена Unix
Связывание контейнеров Docker
Соединения
Что нового в построении сетей Docker?
Песочница
Терминал
Сетевая среда
Модель Docker CNM
Заключение
2. Построение сети Docker взгляд вовнутрь
Настройка стека IP для Docker
Поддержка IPv4
Поддержка IPv6
Настройка сервера DNS
Взаимодействие между контейнером и внешними сетями
Ограничение доступа из одного контейнера к другому на SSH
Настройка моста Docker
Перекрывающие и лежащие в основе сетевые среды
Заключение
3. Построение вашей первой сетевой среды Docker
Введение в Piperwork
Множество контейнеров поверх одного хоста
Переплетение ваших контейнеров
Open vSwitch
OVS одного хоста
Создание моста OVS
OVS множества хостов
Построение сетей с оверлейными сетевыми средами - Flannel
Заключение
4. Построение сетей в кластере Docker
Docker Swarm
Сборка Docker Swarm
Построение сети Docker Swarm
Kubernetes
Развёртывание Kubernetes в AWS
Построение сети Kubernetes и его различия с построением сетей Docker
Развёртывание Kubernetes pod
Mesosphere
Контейнеры Docker
Развёртывание веб- приложений с применением Docker
Развёртывание Mesos в AWS с использованием Docker
Заключение
5. Безопасность и QoS для контейнеров Docker
Ограничения файловой системы
Точки монтирования, доступные только для чтения
sysfs
procfs
/dev/pts
/sys/fs/cgroup
Копирование при записи
Возможности Linux
Безопасность контейнеров в AWS ECS
Понимание безопасности Docker I - пространства имён ядра
Пространство имён pid
Пространство имён net
Управление основным пространством имён сетевой среды
Настройка пространства имён сетевой среды
Пространство имён User
Создание нового пространства имён пользователя
Понимание безопасности Docker II - cgroup
Определение cgroup
Зачем нужны cgroup?
Создание cgroup вручную
Docker и cgroup
Применение AppArmor для безопасности контейнеров Docker
AppArmor и Docker
Эталонное тестирование безопасности Docker
Регулярный аудит демона Docker
Создание пользователя для определённого контейнера
Не монтируйте конфиденциальные каталоги системы хоста в контейнеры
Не применяйте привилегированные контейнеры
Заключение
6. Следующее поколение сетевого стека для Docker: libnetwork
Цель
Разработка
Объекты CNM
Песочница
Терминал
Сетевая среда
Контроллер сети
Атрибуты CNM
Жизненный цикл CNM
Драйвер
Драйвер моста
Драйвер оверлейной сетевой среды
Применение оверлейной сетевой среды при помощи Vagrant
Сборка Vagrant развёртывания оверлейной сетевой среды
Оверлейная сетевая среда машины Dodcker и Docker Swarm
Предварительные условия
Установка хранилища ключ-значение
Создание кластера Swarm из двух узлов
Создание оверлейной сетевой среды
Создание контейнеров с применением оверлейной сетевой среды
Интерфейс сети контейнера
Встраиваемый модуль CNI
Настройка сетевой среды
Выделение IP
Интерфейс управления IP адресами
Драйвер libnetwork проекта Calico
Заключение
Указатель

 Предисловие

Эта книга поможет читателю изучить, создать, развернуть и выполнить шаги администрирования построения сети Docker. Docker является Linux реализацией контейнеров, которая делает возможной создание лёгких и переносимых проектов и сред промышленного уровня. Эти среды могут обновляться приращениями. Docker достигает этого за счёт правил локализации, таких как cgroup и пространства имён Linux помимо оверлейной файловой системы с перекрывающимися образами. Docker предоставляет сетевые примитивы, которые позволяют администраторам определять насколько различаются сетевые среды контейнеров для каждого приложения и соединять все его компоненты, а затем распространять их по большому числу серверов и при этом гарантировать координацию между ними независимо от того,на каком хосте или ВМ они работают. Эта книга собрала в себя все последние сетевые технологии Docker и предоставляет большие по глубине пояснения с подробностями их настройки.

 Что охватывает эта книга

 Что вам нужно для этой книги

 Для кого эта книга

 Соглашения

 Обратная связь с читателями

 Загрузка кода примеров

 Поддержка пользователей

 Загрузка цветных изображений этой книги

Также мы предоставляем вам файл pdf, который содержит цветные изображения используемых в этой книге снимков экранов/ схем. Цветные изображения помогут вам лучше понять изменения в выводе. Вы можете загрузить этот файл с http://www.packtpub.com/sites/default/files/downloads/LearningDockerNetworking_ColorImages.pdf

 Опечатки

 Незаконное тиражирование

 Вопросы