Полное руководство Kubernetes, 2е изд.

Джиджи Сэйфан

 

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

Второе издание на английском языке: Апрель 2018

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

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

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

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

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

Livery Place

35 Livery Street

Birmingham B3 2PB, UK

ISBN 978-1-78899-978-6

www.packtpub.com

2018-05-12

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

Издания на английском языке
Автор
Джиджи Сэйфан
Рецензент
Редактор выпуска
Редактор
Редактор разработки содержания
Технический редактор
Литературный редактор
Координатор проекта
Корректор
Составитель указателя
Графика
Координатор производства
Изготовитель переплета

 Об авторе

Русс Мак-Кендрик

 Рецензент

 www.PacktPub.com

 Содержание

Предисловие
Для кого эта книга
Что охватывает эта книга
Как получить максимальную отдачу от этой книги
Загрузка примеров кода этой книги
Загрузка цветных изображений этой книги
Принятые соглашения
Будьте на связи
Отзывы
Опечатки
Незаконное тиражирование
Вопросы
Глава 1. Понимание архитектуры Kubernetes
Что такое Kubernetes?
Чем не является Kubernetes
Понимание оркестрации контейнеров
Физические машины, виртуальные машины и контейнеры
Преимущества контейнеров
Контейнеры в облачном решении
Сопоставление стадных и домашних животных
Понятия Kubernetes
Кластер
Узел
Хозяин
Под
Метка
Аннотация
Селекторы меток
Контроллеры репликаций и наборы реплик
Службы
Тома
Наборы с учётом состояния соединения
Коды безопасности
Имена
Пространства имён
Погружаясь в глубины архитектуры Kubernetes
Шаблоны архитектуры распределённых систем
Пристяжные шаблоны
Представительские шаблоны
Шаблоны адаптера
Шаблоны множества узлов
API Kubernetes
Категории ресурсов
API рабочих нагрузок
Обнаружение и балансировка нагрузки
Настройка и хранилище
Метаданные
Кластер
Компоненты Kubernetes
Компоненты хозяина
Сервер API
Etcd
Диспетчер контроллера Kube
Диспетчер контроллера облака
Планировщик Kube
DNS
Компоненты узла
Посредник
Kubelet
Механизмы времени исполнения Kubernetes
CRI
Docker
Rkt
Контейнер App
Cri-O
Rktnetes
Готов ли rkt к промышленному применению?
Контейнеры Hyper
Stackube
Непрерывные интеграция и развёртывание
Что такое конвейеры CI/CD
Проектирование конвейеров CI/CD для Kubernetes
Выводы
Глава 2. Создание кластера Kubernetes
Кластер из одного узла при помощи Minikube по- быстрому
Подготовка
В Windows
В macOS
Создание кластера
Поиск неисправностей
Подтверждение кластера
Выполнение работы
Изучение кластера с помощью его инструментальной панели
Создание кластера со множеством узлов при помощи kubeadm
Установка ожиданий
Подготовка
Приготовление кластера ВМ Vagrant
Установка необходимого программного обеспечения
Файл host
Файл vars.yml
Файл playbook.yml
Создание кластера
Инициализация хозяина
Установка сетевой среды подов
Добавление рабочих узлов
Создание кластера в имеющемся облаке (GCP, AWS и Azure)
Интерфейс поставщика облака
Облачная платформа Google (GCP)
Веб службы Amazon (AWS)
Cлужба контейнера Elastic Amazon для Kubernetes (EKS)
Fargate
Azure
Alibaba Cloud
Создание кластера с нуля на голом железе
Варианты применения голого железа
Когда вам следует рассматривать создания кластера на голом железе?
Собственно процесс
Применение виртуальной частной облачной инфраструктуры
Bootkube
Выводы
Глава 3. Мониторинг, регистрация и поиск неисправностей
Мониторинг Kubernetes посредством Heapster
cAdvisor
Установка Heapster
Сервер InfluxDB
Схема хранения
ЦПУ
Файловая система
Оперативная память
Сетевая среда
Время работы
Визуализация Grafana
Обнаружение и балансировка нагрузки
Анализ производительности при помощи инструментальной панели
Обзор верхнего уровня
Кластер
Рабочие нагрузки
Добавление централизованной регистрации
Планирование централизованной регистрации
Fluentd
Elasticsearch
Kibana
Проблемы определения узлов
Средство обнаружения проблем узла
DaemonSet
Демоны проблем
Сценарии поиска неисправностей
Проектирование надёжных систем
Отказы оборудования
Квоты, совместные ресурсы и ограничения
Плохая настройка
Сопоставление стоимости и производительности
Управление стоимостью в облачном решении
Управление стоимостью в голом железе
Управление стоимостью в гибридных кластерах
Применение Prometheus
Что такое оператор?
Оператор Prometheus
Установка Prometheus с помощью kube-prometheus
Монитринг вашего кластера с применением Prometheus
Выводы
Глава 4. Высокая доступность и надёжность
Понятия Высокой доступности
Избыточность
Подмена в горячем режиме
Выбор ведущего
Интеллектуальная балансировка нагрузки
Идемпотентность
Самостоятельное восстановление
Практические приёмы Высокой доступности
Создание кластера с Высокой доступностью
Придание вашим узлам устойчивости
Защита состояния вашего кластера
Кластеризация etcd
Инициализация оператора etcd
Создание кластера etcd
Верификация кластера etcd
Защита ваших данных
Запуск избыточных API серверов
Исполнение выбора ведущего в Kubernetes
Выбор ведущего для вашего приложения
Придание Высокой доступности вашей конвейерной среде
Проверка Высокой доступности
Обновление кластера в реальном времени
Накатывающие обновления
Сложные развёртывания
Сине- зелёные обновления
Управление изменениями контрактных данных
Миграция данных
Устаревшие API
Производительность, стоимость и компромиссы большого кластера
Требования доступности
Быстрое восстановление
Всё возможное
Окна сопровождения
Нулевое время простоя
Согласованность производительности и данных
Выводы
Глава 5. Настройка безопасности, ограничений и учётных записей Kubernetes
Понимание основных трудностей безопасности Kubernetes
Вызовы узла
Вызовы образа
Вызовы настройки и развёртывания
Вызовы пода и контейнера
Организационные, культурные и процедурные вызовы
Упрочнение Kubernetes
Понимание учётных записей служб в Kubernetes
Как Kubernetes управляет учётными записями служб
Доступ к серверу API
Аутентификация пользователей
Исполнение роли
Авторизация запросов
Применение встраиваемых модулей управления доступом
Защита подов
Применение частных репозиториев образов
ImagePullSecrets
Определение контекста безопасности
Предохранение вашего кластера с помощью AppArmor
Требования
Безопасность пода с помощью AppArmor
Написание профилей AppArmor
Политики безопасности подов
Авторизация безопасности подов через RBAC
Управление сетевыми политиками
Выбор поддерживаемых сетевых решений
Определение сетевой политики
Ограничение Исхода во внешнюю сеть
Перекрёстные политики пространств имён
Применение секретных кодов
Хранение секретных кодов в Kubernetes
Настройка шифрования в Rest
Создание секретных кодов
Декодирования секретных кодов
Применение секретных кодов в контейнере
Исполнение кластера множества пользователей
Вариант применения кластера со множеством пользователей
Использование пространств имён для безопасности множества арендаторов
Обход ловушек пространств имён
Выводы
Глава 6. Применение критически важных ресурсов Kubernetes
Проектирование платформы Hue
Определение сферы для Hue
Компоненты Hue
Микрослужбы Hue
Планирование рабочих потоков
Автоматические рабочие потоки
Рабочие потоки персонала
Бюджетные рабочие потоки
Применение Kubernetes для построения платформы Hue
Действенное использование Kubectl
Основы файлов настройки ресурсов Kubectl
Развёртывание микрослужб длительного исполнения в подах
Создание подов
Декорирование подов метками
Оснащение процессов длительного действия в развёртываниях
Обновление развёртываний
Разделение внутренний и внешних служб
Развёртывание внутренней службы
Создание необходимой службы hue-reminders
Внешнее выставление службы
Ingress
Применение пространства имён для ограничения доступа
Загрузка заданий
Одновременное исполнение заданий
Очистка завершённых заданий
Планирование заданий cron
Смешение не кластерных компонентов
Внешние для сетевой среды кластера компоненты
Внутренние для сетевой среды кластера компоненты
Управление платформой Hue с помощью Kubernetes
Применение зондов живучести для гарантии жизнеспособности ваших контейнеров
Применение зондов готовности для управления зависимости
Применение контейнеров Init для упорядоченного подбора подов
Совместное исполнение подов при помощи DaemonSet
Развитие платформы Hue с помощью Kubernetes
Корпоративное применение Hue
Развитие науки с помощью Hue
Обучение детей в будущем посредством Hue
Выводы
Глава 7. Манипулирование хранилищами Kubernetes
Сквозной контроль постоянных томов
Тома
Применение emptyDir для взаимодействия между подами
Применение HostPath для взаимодействия между узлами
Применение локальных томов для длительного хранения узлов
Предоставление постоянных томов
Создание постоянных томов
Ёмкость
Режим тома
Доступ к узлам
Политика утилизации
Класс хранения
Тип тома
Осуществление заявок на постоянные тома
Монтирование заявок томами
Тома сырых блоков
Классы хранилищ
Класс установленного по умолчанию хранилища
Демонстрация томов постоянного повсеместного хранения
Типы томов общедоступных хранилищ - GCE, AWS и Azure
Блочное хранилище AWS Elastic (EBS)
Файловая система AWS Elastic
Постоянный диск GCE
Диск данных Azure
Файловое хранилище Azure
Тома GlusterFS и Ceph в Kubernetes
Применение GlusterFS
Создание конечных точек
Добавление службы GlusterFS Kubernetes
Создание подов
Применение Ceph
Подключение Ceph при помощи RBD
Подключение Ceph при помощи CephFS
Flocker в качестве диспетчера томов данных контейнеров кластера
Интеграция корпоративного хранилища в Kubernetes
Тома проектов
Применение встраиваемых модулей томов вне дерева с помощью FlexVolume
Интерфейс хранилища контейнера
Выводы
Глава 8. Исполнение в Kubernetes приложений с запоминанием состояния
Сопоставление приложений с сохранением и без сохранения состояния в Kubernetes
Понимание характера природы распределённых приложений с интенсивными данными
Зачем управлять состоянием в Kubernetes
Зачем управлять состоянием за пределами Kubernetes
Сопоставление совместных переменных среды и записей DNS для обнаружения
Доступ к хранимым вовне данным через DNS
Доступ к хранимым вовне данным через переменные среды
Создание ConfigMap
Поглощение ConfigMap как переменной среды
Использование избыточного состояния in-memory
Использование DaemonSet для постоянного хранения с избыточностью
Применение заявок постоянных томов
Употребление StatefulSet
Когда использовать StatefulSet
Основные компоненты StatefulSet
Исполнение кластера Cassandra в Kubernetes
Быстрое введение в Cassandra
Docker образ Cassandra
Изучение сценария run.sh
Подключение Kubernetes и Cassandra
Углубляясь в настройку Cassandra
Поставщик индивидуальных затравок
Создание служб Cassandra без руководства
Использование StatefulSet для создания кластера Cassandra
Расчленение файла настроек множества с запоминанием состояния
Применение контроллера репликаций для рассредоточения Cassandra
Расчленение файла настроек контроллера репликаций
Назначение подов узлам
Использование DaemonSet для рассредоточения Cassandra
Выводы
Глава 9. Раскрутка обновлений, масштабирование и квоты
Горизонтальное автоматическое масштабирование подов
Описание горизонтального автоматического масштабирования подов
Индивидуальные метрики
Использование индивидуальных метрик
Автоматического масштабирование с помощью kubectl
Применение накатываемых обновлений с помощью автоматического масштабирования
Обработка ограниченных ресурсов при помощи пределов и квот
Разрешение квот ресурсов
Типы квот ресурсов
Квоты вычислительных ресурсов
Квот ресурсов хранения
Квоты числа объектов
Сферы квот
Запросы и пределы
Работа с квотами
Использование специфичного для пространства имён контекста
Создание квот
Использование диапазонов пределов для установленных по умолчанию квот вычислений
Выбор значения ёмкости кластера и управление им
Выбор типов вашего узла
Выбор ваших решений хранения
Компромисс между стоимостью и временем отклика
Действенное использование конфигураций со множеством узлов
Получение преимуществ растяжимости облачных ресурсов
Автоматическое масштабирование экземпляров
Забота по поводу ваших облачных квот
Тщательное управление регионами
Рассмотрение Hyper.sh (и AWS Fargate)
Активная доставка обёрток с помощью Kubernetes
Улучшение производительности и масштабируемости Kubernetes
Кэширование чтения в сервере API
Генератор событий жизненного цикла определённого пода
Упорядочение объектов API с помощью буферов протоколов
etcd3
Прочие оптимизации
Измерение производительности и масштабируемости в Kubernetes
SLO Kubernetes
Замеры оперативности откликов API
Измерение повсеместного времени запуска подов
Проверка Kubernetes в масштабе
Введение в инструментарий Kubemark
Установка кластера Kubemark
Сопоставление кластера Kubemark с кластером реального мира
Выводы
Глава 10. Расширенные сетевые среды Kubernetes
Основы сетевой модели Kubernetes
Взаимодействие внутри пода (контейнер к контейнеру)
Взаимодействие между подами (под с подом)
Взаимодействие пода со службой
Внешний доступ
Сопоставление сетевых сред Kubernetes и Docker
Поиск и обнаружение
Самостоятельная регистрация
Службы и конечные точки
Свободное вовлечение в связь с помощью очередей
Свободное вовлечение в связь с помощью хранилищ данных
Проникновение Kubernetes
Встраиваемые сетевые модули Kubernetes
Базовые сетевые среды Linux
Адреса и порты IP
Сетевые пространства имён
Подсети, сетевые маски и CIDR
Виртуальные устройства Ethernet
Мосты
Маршрутизаторы
Максимальный размер передаваемого блока
Сетевые среды подов
Kubenet
Требования
Установка MTU
Сетевой интерфейс контейнера (CNI)
Контейнер времени исполнения
Встраиваемый модуль CNI
Сетевые решения Kubernetes
Построение мостов в кластерах голого железа
Contiv
Open vSwitch
Сетевые среды VCS Nuage
Canal
Flannel
Проект Calico
Romana
Weave net
Действенное применение сетевых политик
Основы архитектуры сетевых политик самого Kubernetes
Сетевые политики и встраиваемые модули CNI
Настройка сетевых политик
Реализация сетевых политик
Варианты балансировки нагрузки
Внешние балансировщики нагрузки
Настройка внешнего балансировщика нагрузки
Через файл настроек
Посредством Kubectl
Поиск IP адресов самого балансировщика нагрузки
Предварительное резервирование IP адресов клиента
Определение первоначального предварительно зарезервированного IP адреса клиента
Понимание потенциала равномерной балансировки внешней нагрузки
Служба балансировки нагрузки
Ingress
HAProxy
Использование NodePort
Предоставление индивидуальной балансировки нагрузки с помощью HAProxy
Исполнение HAProxy внутри самого кластера Kubernetes
Сохранение жизнеспособности VIP
Træfic
Создание вашего собственного встраиваемого модуля CNI
Первый взгляд на встраиваемый модуль обратной петли
Выстраивание скелета встраиваемого модуля CNI
Пересмотр встраиваемого модуля моста
Выводы
Глава 11. Исполнение Kubernetes во множестве облачных решений и федерализация кластеров
Основы федерализации кластеров
Важные случаи применения федерализации кластеров
Перекрытие ёмкости
Чувствительные рабочие нагрузки
Избежание привязки к поставщику
Высокая доступность распределения по миру
Управляющая панель федерализации
Федеральный сервер API
Диспетчер федеративного контроллера
Федеративные ресурсы
Федеральный ConfigMap
Создание федерального ConfigMap
Обзор федерального ConfigMap
Обновление федерального ConfigMap
Удаление федерального ConfigMap
Федеральный DaemonSet
Федеральное Развёртывание
Федеральные События
Федеральное Горизонтальное масштабирование подов
Федеральное Проникновение
Создание федерального Проникновения
Запрос маршрута посредством федерального Проникновения
Обработка отказов с помощью федерального Проникновения
Федеральные Задания
Федеральное Пространство имён
Федеральные Наборы реплик
Федеральный Коды безопасности
Жёсткие части
Федеральные рабочие элементы
Локальная связность
Собственно связь
Слабая связь
Предпочтительная связь
Строгое отсоединение
Равномерное распространение
Взаимное планирование в кластере
Доступ к федеральным данным
Федеральное автоматическое масштабирование
Управление федерализацией кластеров Kubernetes
Установка федерализации кластеров с нуля
Начальная установка
Использование официального образа Hyperkube
Исполнение панели управления федерализацией
Регистрация кластеров Kubernetesв имеющейся федерализации
Обновление KubeDNS
Останов федерализации
Установка федерализации кластера при помощи Kubefed
Получение Kubefed
Выбор хоста кластера
Развёртывание управляющей панели федерализации
Добавление кластера в федерализацию
Именование правил и индивидуализация
Секретное имя
Удаление кластера из федерализации
Останов федерализации
Каскадное удаление ресурсов
Балансировка нагрузки по множеству кластеров
Отказы во множестве кластеров
Обнаружение служб федерализации
Федеральная миграция
Исполнение федеральных рабочих нагрузок
Создание федеральной службы
Добавление обслуживающих подов
Верификация общедоступных записей DNS
Обнаружение федеративных служб
Распространение DNS
Обработка отказов обслуживающих подов и целых кластеров
Поиск неисправностей
Невозможно соединиться с сервером федерального API
Федеральная создана успешно, однако никокая служба не создана в лежащих в основе кластерах
Выводы
Глава 12. Индивидуализация Kubernetes - API и встраиваемые модули
Работа с API Kubernetes
Основы OpenAPI
Установка посредника
Непосредственный анализ API Kubernetes
Использование Postman для анализа API Kubernetes
Фильтрация получаемого вывода при помощи httpie и jq
Создание пода API Kubernetes
Доступ к API Kubernetes через клиента Python
Расчленение группы CoreV1API
Ожидание объектов
Создание объектов
Наблюдение за объектами
Программный вызов Kubectl
Использование субпроцессов Python для исполнения Kubectl
Расширение API Kubernetes
Основы структуры индивидуальных ресурсов
Разработка определений индивидуальных ресурсов
Интеграция индивидуальных ресурсов
Придание окончательной формы индивидуальным ресурсам
Валидация индивидуальных ресурсов
Основы агрегации API сервера
Использование имеющегося каталога служб
Создание встраиваемых модулей Kubernetes
Создание индивидуального встраиваемого модуля планировщика
Основы архитектуры планировщика Kubernetes
Планировщик
Регистрация поставщика алгоритма
Настройка планировщика
Упаковка планировщика
Развёртывание индивидуального планировщика
Исполнение другого индивидуального планировщика в имеющемся кластере
Назначение подов индивидуальному планировщику
Проверка того, что все поды были распланированы при помощи вашего индивидуального планировщика
Употребление webhook управления доступом
Использование webhook аутентификации
Использование webhook авторизации
Использование webhook управления доступом
Настройка контроллера допуска webhook на лету
Предоставление индивидуальных метрик для горизонтального автоматического масштабирования подов
Расширение Kubernetes при помощи индивидуального хранилища
Получение преимуществ от FlexVolume
Польза от CSI
Выводы
Глава 13. Обработка Диспетчера пакетов Kubernetes
Основы Helm
Мотивировки Helm
Архитектура Helm
Компоненты Helm
Сервер Tiller
Клиент Helm
Применение Helm
Инициализация Helm
Установка клиента Helm
Установка сервера Tiller
Установка Tiller в кластере
Локальная установка Tiller
Использование альтернативного сервера хранения
Поиск схем
Инициализация пакетов
Проверка состояния установки
Индивидуализация схемы
Дополнительные опции установки
Обновление и обратный откат выпусков
Удаление выпуска
Работа с репозиториями
Управление схемами при помощи Helm
Получение преимуществ запускаемых пакетов
Создание ваших собственных схем
Файл Chart.yaml
Отслеживание версий схем
Поле appVersion
Устаревшие схемы
Файлы метаданных схем
Управление зависимостями схем
Управление зависимостями при помощи requirements.yaml
Применение специальных полей в requirements.yaml
Использование шаблонов и значений
Создание файлов шаблона
Использование конвейеров и функций
Встраивание предварительно определённых значений
Снабжение значениями из файла
Область действия, зависимости и значения
Выводы
Глава 14. Будущее Kubernetes
Дорога вперёд
Выпуски и дорожные камни Kubernetes
Особые группы интересов и рабочие группы Kubernetes
Конкуренция
Связываемые значения
Docker Swarm
Mesos/Mesosphere
Облачные платформы
AWS
Azure
Alibaba Cloud
Kubernetes momentum
Сообщество
GitHub
Конференции и встречи
Mindshare
Экосистема
Поставщики общедоступных облачных решений
OpenShift
OpenStack
Прочие игроки
Обучение и тренинги
Модульность и подключаемые модули из внешних деревьев
Сетки служб и инфраструктуры без обслуживания
Сетки служб
Инфраструктуры без обслуживания
Выводы
Указатель

 Предисловие

За последние несколько лет стала одной из самых индивидуальных технологий; он был адаптирован в качестве платформы кластера контейнеров и оркестрации со стороны всех основных общедоступных поставщиков облачных решений, причём он быстро стал стандартом для всей индустрии.

Помимо этого Kubernetes является решением с открытым исходным кодом и у вас имеется прекрасная основа для размещения своей собственной Платформы в качестве Службы, или PaaS (Platform as a Service), у множества общедоступных и частных поставщиков; благодаря её архитектуре вы можете даже исполнять её на ноутбуке, причём вы получите состоятельную практику на всех ваших платформах.

Её архитектура делает её исключительной платформой для исполнения функций работающих без сервера. В этой книге мы взглянем на различные платформы, которые могут быть как развёрнуты, так и интегрированы с помощью Kubernetes, что означает что у вас будет не только PaaS, но также и надёжная платформа Функций в качестве Служб (FaaS, Function as a Service), исполняемая в вашей среде Kubernetes.

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

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

 Как получить максимальную отдачу от этой книги

Операционные системы

  • macOS High Sierra

  • Ubuntu 17.04

  • Windows 10 Professional

Программное обеспечение

На протяжении этой книги мы установим различное программное обеспечение; каждый из этих инструментов будет иметь инструкции по установке и подробности его требований в соответствующих главах. Заметим,что не смотря на то, что будут предоставлены инструкции для систем Windows, большая часть инструментов, которые мы будем использовать, первоначально были разработаны для исполнения в первую очередь в системах на основе Linux/ Unix, таких как Ubuntu 17.04 и macOS High Sierra и эта книга предпочитает такие системы. Хотя на момент написания этой книги и были предприняты все усилия для проверки того, что все эти инструменты работают под системами на основе Windows, поскольку некоторые из этих инструментов имеют экспериментальное построение, мы не можем гарантировать, что они продолжат работать в обновлённых системах и по этой причине я рекомендую применять некую систему на основе Linux- или Unix-.

Оборудование

  • Требования систем Windows 10 Professional и Ubuntu 17.04

    • Системы с применением процессоров (ЦПУ), запущенных в производство в 2011 или позже с частотой ядра 1.3ГГц или выше, исключая процессоры Intel Atom или процессоры AMD на базе микроархитектур Llano и Bobcat.

    • Минимально 4 ГБ ОЗУ с рекомендацией 8 ГБ или более

  • Требования системы Apple Mac

    • iMac: конца 2009 или более нового.

    • MacBook/MacBook (Retina): конца 2009 или более нового.

    • MacBook Pro: середины 2010 или более нового.

    • MacBook Air: конца 2010 или более нового.

    • Mac mini: середины 2010 или более нового.

    • Mac Pro: середины 2010 или более нового.

Доступ, по крайней мере, к одной из следующих общедоступных облачных служб

 Загрузка примеров кода этой книги

Вы можете выгрузить все файлы примеров кода для данной книги из своей учётной записи www.packtpub.com. Если вы приобрели эту книгу в ином месте, будьте добры, пройдите в www.packtpub.com/support и зарегистрируйтесь чтобы иметь эти файлы высланные непосредственно вам по электронной почте.

Вы можете выгрузить все файлы кодов пройдя следующие шаги:

  1. Зайдите зарегистрированным пользователем на www.packtpub.com.

  2. Выберите закладку SUPPORT.

  3. Кликните по Code Downloads & Errata.

  4. Введите название нужной вам книги в блоке Search и следуйте появляющимся на экране инструкциям.

После того, как необходимые файлы выгружены, убедитесь что вы раззиповали или раскрыли их в нужную папку при помощи самой последней версии:

  • WinRAR/7-Zip для Windows.

  • Zipeg/iZip/UnRarX для Mac.

  • 7-Zip/PeaZip для Linux.

Пакет кода также размещён на GitHub по адресу https://github.com/PacktPublishing/Kubernetes-for-Serverless-Applications. Также у нас имеются и другие пакеты кода из нашего богатого каталога книг и видео, доступные по адресу https://github.com/PacktPublishing/. Следите за изменениями!

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

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

 Соглашения

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

CodeInText указывает кодовые слова в тексте, имена таблиц базы данных, имена папок, имена файлов, расширения файлов, имена путей, модели URL-адресов, ввод пользователя, и регулировки Twitter. Вот некий пример: "Это содержит отдельный файл с названием index.html".

Блок кода устанавливается следующим образом:


apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: cli-hello-world
  labels:
    app: nginx
 	   

Если вы желаете привлечь внимание к определённой части блока кода,соответствующие строки или элементы выделяются жирным:


apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: cli-hello-world
  labels:
    app: nginx
 	   

Любой ввод командной строки или её вывод записываются следующим образом:


$ brew cask install minikube
 	   

Жирно: указывает новый термин, важное слово которые вы видите на экране, например, в меню или блоках диалогов появляются именно так. Вот пример: "Внизу данной страницы у вас будет кнопка, которая позволит вам создать Access Token and Access Token Secret для вашей учётной записи.".

[Замечание]Замечание

Предостережения или важные замечания появляются в блоках подобных этому.

[Совет]Совет

Советы и ловкие приёмы возникают таким образом.

 Будьте на связи

Обращения наших читателей всегда приветствуются.

Обычная обратная связь: Пошлите электронное письмо на адрес feedback@packtpub.com с упоминанием заголовка книги в теме вашего сообщения. Если у вас имеются вопросы относительно любых сторон данной книги, обратитесь, пожалуйста, по адресу questions@packtpub.com.

Ошибки: Хотя мы и предприняли все меры чтобы гарантировать точность содержимого, ошибки могут иметь место. Если вы обнаружили ошибку в данной книге, мы будем вам признательны если вы сообщите нам о ней. Посетите, пожалуйста, www.packtpub.com/submit-errata, выбрав вашу книгу, кликнув на ссылку Errata Submission Form, и заполнив подробности найденной вами ошибки.

Пиратство: Если вы столкнётесь с какой-либо незаконной копией наших работ в любой форме в Интернете, пожалуйста, предоставьте нам сразу адрес местонахождения или имя веб-сайта, чтобы мы могли принять меры. Пожалуйста, обратитесь по адресу copyright@packtpub.com со ссылкой на материалы содержащие признаки нарушения авторских прав. {Прим. пер.: Согласно закону об авторском праве РФ, авторские права на перевод принадлежат авторам этого перевода. Данным переводом, по нашему мнению, мы служим популяризации основных стратегических направлений развития тем Packt. В случае наличия конструктивных предложений, готовы к тесному сотрудничеству.}.

Если вы желаете стать нашим автором: Если у вас существует тема, в которой у вас имеется опыт и вы заинтересованы либо в написании, либо во вкладе в книгу, обратитесь к руководству по адресу authors.packtpub.com.

 Отзывы

Оставляйте, пожалуйста, отзывы. Если вы прочли и воспользовались данной книгой, почему бы вам не оставить отзыв на том сайте, на котором вы её приобрели? Потенциальные читатели затем смогут увидеть и применить ваше беспристрастное суждение чтобы принять решение о приобретении, мы в Packt сможем понять что вы думаете о нашем продукте, а наши авторы увидят обратную связь относительно своей книги. Мы заранее благодарим вас!

Для получения дополнительной информации о Packt посетите, пожалуйста packtpub.com.