Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
В книге рассмотрена новейшая версия Kubernetes 1.10. Kubernetes – это система с открытым кодом, предназначенная для работы с контейнерными приложениями, их развертывания, масштабирования, управления ими. Если вы хотите запустить дополнительные контейнеры или автоматизировать управление, то вам не обойтись без Kubernetes. Книга начинается с изучения основ Kubernetes, архитектуры и компоновки этой системы. Вы научитесь создавать микросервисы с сохранением состояния, ознакомитесь с такими продвинутыми возможностями, как горизонтальное автомасштабирование подов, выкатывание обновлений, квотирование ресурсов, обустроите долговременное хранилище на бэкенде. На реальных примерах вы исследуете возможности сетевой конфигурации, подключение и настройку плагинов. Эта книга поможет вам стать искусным дирижером и обращаться с контейнерными системами любой сложности.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 421
Veröffentlichungsjahr: 2022
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Переводчик С. Черников
Технический редактор Н. Рощина
Литературный редактор Н. Рощина
Художники Н. Гринчик, С. Заматевская , Г. Синякина (Маклакова)
Корректоры Е. Павлович, Е. Рафалюк-Бузовская
Верстка Г. Блинов
Джиджи Сайфан
Осваиваем Kubernetes. Оркестрация контейнерных архитектур. — СПб.: Питер, 2021.
ISBN 978-5-4461-0973-9
© ООО Издательство "Питер", 2021
Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
Джиджи Сайфан (Gigi Sayfan) работает главным архитектором программного обеспечения в компании Helix. Вот уже 22 года разрабатывает приложения в сферах обмена мгновенными сообщениями и морфинга1. Джиджи ежедневно пишет код промышленного уровня на таких языках программирования, как Go, Python, C/C++, C#, Java, Delphi, JavaScript и даже Cobol и PowerBuilder, для операционных систем Windows, Linux, macOS, Lynx (встраиваемые решения) и др. Его знания и опыт распространяются на базы данных, сети, распределенные системы, нестандартные пользовательские интерфейсы и циклы разработки программного обеспечения общего характера.
1Технология в компьютерной анимации, визуальный эффект, создающий впечатление плавной трансформации одного объекта в другой. Используется в игровом и телевизионном кино, в телевизионной рекламе. — Здесь и далее примеч. пер.
Дес Друри (Des Drury) — страстный технолог с более чем 25-летним опытом работы в ИТ-индустрии. Дес сумел распознать преимущества платформы Kubernetes на самых ранних этапах ее развития и начал пропагандировать ее всем, кто проявлял малейший интерес. Он соорганизатор Мельбурнской группы пользователей Kubernetes. В 2015 году Дес выпустил собственный дистрибутив Kubernetes под названием Open Data center.
Дес — директор компании Cito Pro, которая специализируется на Kubernetes и программном обеспечении с открытым кодом. В этой должности он помог множеству организаций с внедрением Kubernetes и сопутствующих технологий.
Якуб Павлик (Jakub Pavlik) — сооснователь, бывший технический директор, а ныне главный архитектор компании Tcp Cloud (с 2016 года входит в Mirantis). Вместе со своей командой Якуб несколько лет работал над облачной платформой IaaS, которая обеспечивала развертывание и администрирование проектов OpenStack-Salt и OpenContrail для крупных поставщиков услуг.
В качестве технического директора компании Volterra Inc. он совместно с другими командами опытных профессионалов занимается разработкой и внедрением пограничной вычислительной платформы нового поколения.
Kubernetes — это система с открытым исходным кодом, которая автоматизирует развертывание и масштабирование упакованных в контейнер приложений, а также управление ими. Если вы запускаете много контейнеров или хотите управлять ими автоматически, эта система вам понадобится. Данная книга служит руководством по углубленной работе с кластерами на основе Kubernetes.
Начнем с изучения фундаментальных свойств архитектуры Kubernetes и подробно рассмотрим ее структуру. Вы узнаете, как с помощью системы запускать сложные микросервисы с сохранением состояния, в том числе с применением продвинутых возможностей: горизонтального автомасштабирования подов (pod), выкатывания обновлений, квот на ресурсы и постоянных серверных хранилищ. На реальных примерах исследуете разные варианты сетевой конфигурации и научитесь подготавливать, реализовывать и отлаживать различные сетевые дополнения Kubernetes. В конце книги узнаете, как разрабатывать и использовать нестандартные ресурсы в режиме автоматизации и обслуживания. Это издание затрагивает некоторые дополнительные концепции, появившиеся в версии Kubernetes 1.10, например Promethus, управление доступом на основе ролей и агрегацию API.
Дочитав до конца, вы овладеете всеми знаниями, необходимыми для перехода со среднего уровня на продвинутый.
Эта книга для вас, если вы системный администратор или разработчик со средним уровнем знаний о Kubernetes и хотите овладеть расширенным функционалом этой системы. Кроме того, вы должны иметь базовое представление об устройстве сетей. Материал, который вы здесь найдете, поможет пройти путь к полному освоению Kubernetes.
Глава 1 «Архитектура Kubernetes» познакомит вас с устройством системы Kubernetes и поможет понять причины выбора тех или иных архитектурных решений.
Глава 2 «Создание кластеров Kubernetes» представит различные способы создания кластеров Kubernetes. С помощью предложенных инструментов вы разработаете и изучите несколько кластеров.
Глава 3 «Мониторинг, журналирование и решение проблем» поможет подготовить систему мониторинга и измерения в кластерах Kubernetes и понять, как она работает. Это позволит вам обнаруживать и устранять типичные проблемы, с которыми администраторы сталкиваются в ежедневной работе.
Глава 4 «Высокая доступность и надежность» научит проектировать высокодоступные кластеры Kubernetes и выполнять их обновление на лету. Вы научитесь подготавливать свои системы для промышленной среды, для работы в крупных масштабах.
Глава 5 «Конфигурация безопасности,ограничений и учетных записей в Kubernetes» познакомит и научит вас работать с настройками безопасности и ограничений, интеграцией с AAA-серверами, пространствами имен и конфигурацией служебных учетных записей.
Глава 6 «Использование критически важных ресурсов Kubernetes» покажет, как в промышленных условиях можно применять почти любые самые актуальные ресурсы Kubernetes. Вы узнаете, как определять и доставлять их, а также управлять их версиями.
Глава 7 «Работа с хранилищем данных в Kubernetes» познакомит вас с драйверами для постоянных томов с данными и покажет, как с ними работать. Вы узнаете, как работает Flocker, и научитесь интегрировать в Kubernetes существующие хранилища данных уровня предприятия (iSCSI/NFS/FC).
Глава 8«Запуск приложений с сохранением состояния» научит преобразовывать монолитные системы, обладающие состоянием, в микросервисы, которые работают внутри Kubernetes и способны выдерживать промышленные нагрузки. Вам будет представлено несколько способов добиться этого с ресурсом PetSet или без него в версиях Kubernetes, предшествовавших 1.3. Вы сможете заполнить пробелы, имеющиеся в действующей документации.
Глава 9 «Плавающие обновления, масштабирование и квоты» покажет, как выкатывать обновления и как ведет себя горизонтальное автомасштабирование подов. Вы научитесь выполнять и подстраивать под себя проверки масштабируемости в промышленных условиях. И сможете использовать квоты на процессорные ресурсы и память.
Глава 10 «Продвинутая организация сети в Kubernetes» позволит вам определить, какие сетевые дополнения подходят в тех или иных ситуациях, научиться развертывать их вместе с Kubernetes и расширять их возможности. Вы также овладеете балансировкой нагрузки с помощью iptables.
Глава 11 «Запуск Kubernetes в нескольких облаках и многокластерном режиме» познакомит вас с разными вариантами развертывания кластеров Kubernetes в промышленной среде. Будут представлены инструкции относительно того, как выделять, запускать и автоматизировать кластеры в Amazon и Google Cloud Engine, в том числе географически распределенные многокластерные системы с использованием Workload API.
Глава 12 «Настройка Kubernetes: API и дополнения» поможет вам реализовать и интегрировать сторонние ресурсы в имеющиеся среды и понять принцип усовершенствования API Kubernetes. В конце вы также научитесь применять внешние нестандартные механизмы распределения нагрузки при локальном развертывании с использованием популярных серверов haproxy или nginx.
Глава 13 «Поддержка диспетчера пакетов Kubernetes» покажет, как работать с приложениями Kubernetes, поставляемыми в виде пакетов. В начале этой главы вы познакомитесь с диспетчером Helm Classic, а затем перейдете к изучению Helm for Kubernetes. В конце будут приведены примеры создания и обновления пакетов в репозитории Helm, которые можно в дальнейшем развертывать и обслуживать в промышленных условиях.
Глава 14 «Будущее Kubernetes» научит вас создавать и сохранять в репозитории Helm собственные пакеты. Вы узнаете, как с помощью конвейеров доставки Kubernetes-пакеты попадают из репозиториев в кластеры.
Для выполнения примеров, которые приводятся в издании, нужно установить на компьютер последние версии Docker и Kubernetes (желательно 1.10). Система Windows 10 Professional позволяет включить режим гипервизора. Если используется другая ОС, придется установить VirtualBox, содержащий Linux.
PDF-файл с цветными оригинальными снимками экранов и схемами, приведенными в книге, вы можете скачать по адресу https://www.packtpub.com/sites/default/files/downloads/MasteringKubernetesSecondEdition_ColorImages.pdf.
В данной книге при форматировании текста используется ряд условных обозначений.
КодВТексте. Обозначает участки кода, имена папок и файлов, файловые расширения, пути, названия таблиц в базах данных и пользовательский ввод, например: «Проверим узлы кластера с помощью команды getnodes».
Блок кода выглядит следующим образом:
type Scheduler struct {
config *Config
}
Любой ввод или вывод в командной строке записывается так:
> kubectl create -f candy.yaml
candy "chocolate" created
Рубленый шрифт. Обозначает URL-адреса, текст в графическом интерфейсе и псевдонимы в Twitter.
Курсив. Обозначает новый термин или важное слово.
Предупреждения и важные замечания выглядят таким образом.
Советы и подсказки выглядят так.
Из предыдущей главы вы узнали, что представляет собой платформа Kubernetes, как она спроектирована, какие концепции и среды выполнения поддерживает и как вписывается в процесс CI/CD.