Книга посвящена интеграции Kubernetes в готовые компьютерные сети. Рассмотрено, как оркестратор Kubernetes вписывается в сетевую модель OSI. Раскрыты вопросы интеграции сетей предприятия с облачными мощностями и контейнерными архитектурами. Рассмотрены ключевые факторы и новые зоны ответственности, возникающие при взаимодействии Kubernetes с каждым из уровней модели OSI. Приведены примеры быстрого масштабирования нагрузок, рассказано, как обеспечивать целостность данных и высокую отказоустойчивость, при активном применении современной виртуализации и передаче больших объёмов данных по сети.
Сегодня, чтобы поддерживать всю палитру возможных применений, сети становятся все более сложными многоуровневыми конструкциями, и появление контейнеров и проектов, таких как Mesosphere и Kubernetes, не изменило положения дел. Хотя создатели Kubernetes и старались «свернуть» как можно больше этих сложных понятий в предлагаемых объектах API (абстракциях), но информатика развивается таким образом, что иерархия уровней постоянно усложняется. Kubernetes и его API — это набор средств, позволяющих интегрировать определенный уровень сложности и развертывать рабочие приложения проще и быстрее. А как быть администраторам, которые управляют сетями, работающими на базе Kubernetes? Данная книга снимает налет таинственности с абстракций Kubernetes, знакомит с уровнями сложности и помогает понять, что Kubernetes — это не просто еще один пакет для разработчика.
Данная книга предназначена для чтения от начала до конца теми, кто только начал заниматься администрированием сетей, кластеров и систем под Linux. Она также может быть полезна и уже опытным разработчикам и администраторам (DevOps), желающим освоить новые для них аспекты. Сегодня администраторам Linux, сетей и кластеров необходимо хорошо представлять себе, как работать с приложениями Kubernetes в больших масштабах.
В книге читатели найдут информацию, необходимую для понимания сложной многоуровневой сети, какой является сеть Kubernetes, а также управления ею. Уровень за уровнем книга иллюстрирует иерархию, заложенную в объектах Kubernetes, так что разработчики увидят, как развертывать приложения локально, в облаке и с управляемыми сервисами. Инженеры, ответственные за функционирование рабочих кластеров и сетей, могут использовать книгу, чтобы наверстать недостающие знания в вопросах функционирования отдельных объектов.
https://github.com/strongjz/Networking-and-Kubernetes
Author(s): Джеймс Стронг, Валлери Лэнси
Publisher: БХВ-Петербург
Year: 2024
Language: Russian
Pages: 320
City: СПб.
Tags: kubernetes
Оглавление
Предисловие
Просто еще один пакет?
Для кого эта книга
Что вы узнаете
Обозначения, используемые в данной книге
Использование примеров программ
Благодарности
Глава 1. Введение в сетевые технологии
История сетевых технологий
Модель OSI
TCP/IP
Уровень приложения
HTTP
Транспортный уровень
TCP
Квитирование в протоколе TCP
tcpdump
TLS
UDP
Уровень межсетевого взаимодействия
Протокол Интернета
Движение по сети
ICMP
Уровень канала данных
Снова наш веб-сервер
Заключение
Глава 2. Поддержка сети в ОС Linux
Базовые понятия
Сетевой интерфейс
Интерфейс сетевого моста
Обработка пакетов в ядре Linux
NetfiIter (межсетевой фильтр)
Conntrack
Маршрутизация
Высокоуровневая маршрутизация
Утилита iptables
Таблицы iptables
Цепочки iptables
Подцепочки
Правила iptables
Практическое применение iptables
IPVS
eBPF
Средства сетевой диагностики
Безопасность
ping
traceroute
dig
telnet
nmap
netstat
netcat
Openssl
cURL
Заключение
Глава 3. Основы работы с контейнерами
Введение в контейнеры
Приложения
Гипервизор
Контейнеры
OCI
LXC
runC
containerd
lmctfy
rkt
Docker
CRI-O
Примитивы контейнеров
Контрольные группы
Пространства имен
Задание пространств имен
Основы сетей контейнеров
Сетевая модель Docker
Оверлейная сеть
Сетевой интерфейс контейнера
Подключение контейнера к сети
Соединение контейнер-контейнер
Взаимодействие между контейнерами на разных хостах
Заключение
Глава 4. Сети в Kubernetes
Сетевая модель Kubernetes
Узел и конфигурация сети подов
Изолированные сети
Плоские сети
Островные сети
Конфигурация компонента kube-controller-manager
Kubelet
Готовность пода и ее проверка
Спецификация интерфейса CNI
Плагины CNI
Интерфейс IPAM
Распространенные плагины CNI
Компонент kube-proxy
Режим userspace
Режим iptables
Режим IPVS
Режим kernelspace
Сетевая политика
Создание объекта NetworkPolicy с помощью Cilium
Группировка подов
Тип LabelSelector
Правила
DNS
Двойной стек IPv4/ IPv6
Заключение
Глава 5. Сетевые абстракции в Kubernetes
StatefulSet
Конечные точки
Endpoint Slices
Сервисы Kubernetes
NodePort
ClusterIP
Headless-сервис
Сервис ExtemalName
Сервис LoadBalancer
Сервисы Kubernetes - устранение проблем
Ингресс
Контроллеры и правила ингресса
Задание правил ингресса
Технология service mesh
Заключение
Глава 6. Kubernetes и облачные сети
Amazon Web Services
Сетевые сервисы AWS
Виртуальное частное облако
Регионы и зоны доступности
Подсеть
Таблицы маршрутизации
Эластичный сетевой интерфейс
Эластичный IP-адрес
Средства обеспечения безопасности
Группы безопасности
Устройства преобразования сетевых адресов
Шлюз Интернета
Эластичные балансировщики нагрузки
Эластичный сервис Kubernetes от Amazon
Узлы EKS
Режим EKS
Инструмент eksctl
CNI для виртуального облака в AWS
Ингресс-контроллер для AWS ALB
Развертывание приложения в кластере AWS EKS
Развертывание кластера EKS
Развертывание тестового приложения
Тестирование сервиса LoadBalancer для веб-сервера
Развертывание и тестирование ингресс-контроллера для ALB
Уборка мусора
Вычислительное облако Google (GCP)
Сетевые сервисы GCP
Регионы и зоны
Виртуальное частное облако
Подсеть
Маршруты и правила брандмауэров
Облачная балансировка нагрузки
Инстансы GCE
Google Kubernetes Engine (GKE)
GKE-узлы в облаке Google
Azure
Сетевые сервисы Azure
Базовая инфраструктура Azure
Подсети
Таблицы маршрутизации
Публичные и частные IP-адреса
Группы сетевой безопасности
Взаимодействие вне пределов виртуальной сети
Балансировщик нагрузки в Azure
Azure Kubernetes Service
Плагин CNI для Azure
Ингресс-контроллер для шлюза приложения
Развертывание приложения с помощью Azure Kubernetes Service
Развертывание кластера с помощью Azure Kubernetes Service
Соединение с кластером AKS и его конфигурирование
Развертывание веб-сервера
Заключительные замечания по AKS
Заключение
Об авторах
Об обложке