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

Istio: приступаем к работе

Использование сервисной сетки для связи,безопасности, управления и наблюдения
Покупка
Артикул: 748357.01.99
Доступ онлайн
999 ₽
В корзину
Вне зависимости оттого, управляете ли вы микросервисами или модернизируете существующие неконтейнерные сервисы, рано или поздно вы все равно окажетесь перед необходимостью организации сервисной сетки. Этот момент наступит тем быстрее, чем больше будет развернуто микросервисов. В предлагаемой вашему вниманию книге Ли Калькот и Зак Бутчер показывают, как сервисная сетка Istio вписывается в жизненный цикл распределенного приложения. Вы изучите ее архитектуру, узнаете об инструментах и API для управления многими функциями Istio, рассмотрите вопросы безопасности и управления трафиком. Особое внимание уделяется устранению неисправностей и отладке. Книга предназначена для IT-специалистов, в задачу которых входит обеспечение безопасной, быстрой и надежной связи между сервисами.
Калькот, Л. Istio: приступаем к работе : практическое руководство / Л. Калькот, З. Бутчер ; пер. с англ. А. Л. Бриня. - Москва : ДМК Пресс, 2020. - 236 с. - ISBN 978-5-97060-863-0. - Текст : электронный. - URL: https://znanium.com/catalog/product/1210709 (дата обращения: 29.03.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Ли Калькот и Зак Бутчер

Istio: 
приступаем к работе

Istio:  
Up and Running

Using a Service Mesh to Connect, 
Secure, Control, and Observe 

Lee Calcote  
Zack Butcher

Beijing • Boston • Farnham • Sebastopol • Tokyo

Istio: 
приступаем к работе

Использование сервисной сетки  
для связи, безопасности, управления  
и наблюдения

Ли Калькот
Зак Бутчер

Москва, 2020

УДК  004.451Istio
ББК 32.972.1
К17

Калькот Л., Бутчер З.
К17 
Istio: приступаем к работе / пер. с англ. А. Л. Бриня. – М.: ДМК Пресс, 
2020. – 236 с.: ил. 

ISBN 978-5-97060-863-0

Вне зависимости от того, управляете ли вы микросервисами или модернизируете существующие неконтейнерные сервисы, рано или поздно вы все равно окажетесь перед необходимостью организации сервисной сетки. Этот момент наступит 
тем быстрее, чем больше будет развернуто микросервисов.
В предлагаемой вашему вниманию книге Ли Калькот и Зак Бутчер показывают, 
как сервисная сетка Istio вписывается в жизненный цикл распределенного приложения. Вы изучите ее архитектуру, узнаете об инструментах и API для управления 
многими функциями Istio, рассмотрите вопросы безопасности и управления трафиком. Особое внимание уделяется устранению неисправностей и отладке.
Книга предназначена для IT-специалистов, в задачу которых входит обеспечение безопасной, быстрой и надежной связи между сервисами.

УДК 004.451Istio
ББК 32.972.1

Authorized Russian translation of the English edition of Istio: Up and Running ISBN 
9781492043782 © 2020 Lee Calcote and Zack Butcher This translation is published and sold by 
permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same. 
Russian language edition copyright © 2020 by DMK Press. All rights reserved.

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

ISBN 978-1-492-04378-2 (англ.)  
 Copyright © Lee Calcote and Zack 
Butcher, 2020
ISBN 978-5-97060-863-0 (рус.)  
©  Оформление, издание, перевод, 
ДМК Пресс, 2020

Содержание

От издательства ......................................................................................................... 10

Об авторах .................................................................................................................... 11

Колофон ......................................................................................................................... 12

Введение ....................................................................................................................... 13

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

Глава 1. Введение в сервисные сетки .......................................................... 16

Что такое сервисная сетка? ................................................................................................ 16
Основы ............................................................................................................................ 16
Путешествие в сервисную сетку ........................................................................................ 17
Клиентские библиотеки: первые сервисные сетки?.................................................... 18
Зачем они нужны?.......................................................................................................... 19
Разве на контейнерных платформах такого еще нет? ................................................ 20
Ландшафт и экосистема ..................................................................................................... 21
Ландшафт ........................................................................................................................ 21
Экосистема ..................................................................................................................... 22
Критическая, ненадежная сеть ...................................................................................... 22
Преимущества сервисной сетки ................................................................................... 23
Сервисная сетка Istio .......................................................................................................... 25
Происхождение Istio ...................................................................................................... 26
Текущее состояние Istio ................................................................................................. 26
Активность развития ..................................................................................................... 27
Выпуски .......................................................................................................................... 28
Классификация версий .................................................................................................. 29
Будущее ........................................................................................................................... 29
То, чем Istio не является ................................................................................................ 30
Речь идет не только о микросервисах ........................................................................... 30

Терминология ..................................................................................................................... 31

Глава 2. Истинно облачный подход к равномерной  
наблюдаемости ......................................................................................................... 34

Что значит быть истинно облачным? .............................................................................. 34
Путь к истинной облачности ......................................................................................... 35
Упаковка и развертывание ............................................................................................ 37
Архитектура приложений.............................................................................................. 37
Процессы разработки и эксплуатации ......................................................................... 38
Истинно облачная инфраструктура .............................................................................. 38
Что такое наблюдаемость? ................................................................................................. 39
Источники телеметрии .................................................................................................. 40
Журналы ......................................................................................................................... 40

 Содержание

Метрики .......................................................................................................................... 41
Трассировка .................................................................................................................... 41
Комбинирование источников телеметрии ................................................................... 42
Почему так важна наблюдаемость в распределенных системах?............................... 43
Равномерная наблюдаемость с сервисной сеткой ........................................................... 44
Клиентские библиотеки ................................................................................................. 45
Взаимодействие с системами мониторинга ................................................................ 45

Глава 3. Istio на первый взгляд ........................................................................ 47

Архитектура сервисной сетки............................................................................................ 47
Уровни ................................................................................................................................. 48
Компоненты уровня управления Istio .......................................................................... 49
Прокси сервисов ............................................................................................................. 51
Компоненты уровня данных Istio ................................................................................. 52
Шлюзы ............................................................................................................................. 53
Расширяемость ................................................................................................................... 56
Замена прокси ................................................................................................................ 56
Замена адаптеров ........................................................................................................... 57
Масштабируемость и производительность ...................................................................... 58
Модели развертывания ...................................................................................................... 59

Глава 4. Развертывание Istio ............................................................................. 61

Подготовка окружения для Istio ........................................................................................ 61
Docker Desktop как среда установки ............................................................................. 61
Конфигурирование Docker Desktop .............................................................................. 62
Установка Istio .................................................................................................................... 65
Параметры установки Istio ............................................................................................ 67
Регистрация нестандартных ресурсов Istio .................................................................. 68
Установка компонентов уровня управления ............................................................... 70
Развертывание образца приложения Bookinfo ............................................................ 73
Развертывание примера приложения с автоматическим внедрением прокси ........ 74
Работа примера приложения в сети ............................................................................. 76
Деинсталляция Istio ............................................................................................................ 77
Установка с помощью Helm ............................................................................................... 77
Установка Helm ............................................................................................................... 77
Установка с помощью Helm ........................................................................................... 78
Проверка сетки после установки .................................................................................. 79
Деинсталляция с помощью Helm .................................................................................. 79
Другие окружения............................................................................................................... 79

Глава 5. Прокси для сервисов ........................................................................... 80

Что такое прокси для сервисов? ........................................................................................ 81
Коротко о iptables ........................................................................................................... 82
Обзор Envoy Proxy ............................................................................................................... 83
Почему Envoy? ................................................................................................................ 84
Envoy в Istio ......................................................................................................................... 85
Внедрение в сетку ............................................................................................................... 85
Внедрение вручную ....................................................................................................... 86
Выборочное внедрение.................................................................................................. 88
Автоматическое внедрение ........................................................................................... 88

Содержание  7

Init-контейнеры в Kubernetes ........................................................................................ 91
Выделение ресурсов для прокси ................................................................................... 91
Функциональные возможности Envoy .............................................................................. 91
Основные конструкции ................................................................................................. 92
Сертификаты и защита трафика ................................................................................... 93

Глава 6. Безопасность и идентичность ........................................................ 96

Контроль доступа ................................................................................................................ 97
Аутентификация ............................................................................................................ 97
Авторизация ................................................................................................................... 97
Идентичность ...................................................................................................................... 98
SPIFFE .............................................................................................................................. 98
Архитектура управления ключами ..................................................................................100
Citadel .............................................................................................................................101
Агенты узлов .................................................................................................................102
Envoy ..............................................................................................................................103
Pilot ................................................................................................................................104
mTLS ...................................................................................................................................104
Настройка политик аутентификации и авторизации в Istio ..........................................105
Политика аутентификации: конфигурирование mTLS ..............................................105
Политика авторизации: настройка разрешений ........................................................108

Глава 7. Pilot ................................................................................................................111

Настройка Pilot ..................................................................................................................111
Конфигурация сетки ..........................................................................................................111
Сетевая конфигурация ..................................................................................................113
Обнаружение сервисов .................................................................................................114
Обслуживание конфигурации ..........................................................................................114
Отладка и устранение неисправностей в Pilot ................................................................116
istioctl  ............................................................................................................................116
Отладка Pilot ..................................................................................................................117
Трассировка конфигурации ..............................................................................................119
Приемники ....................................................................................................................119
Маршруты ......................................................................................................................122
Кластеры ........................................................................................................................124

Глава 8. Управление трафиком .......................................................................127

Как движется трафик в Istio? ............................................................................................127
Работа сетевых API Istio ....................................................................................................128
ServiceEntry ....................................................................................................................129
DestinationRule ..............................................................................................................132
VirtualService .................................................................................................................135
Gateway ..........................................................................................................................139
Управление трафиком и маршрутизация ........................................................................147
Устойчивость ......................................................................................................................152
Стратегия балансировки нагрузки ..............................................................................153
Обнаружение аномалий ...............................................................................................154
Повторные попытки .....................................................................................................154
Тайм-ауты ......................................................................................................................155
Имитация ошибок .........................................................................................................156

 Содержание

Входные и выходные шлюзы ............................................................................................157
Входной шлюз ...............................................................................................................158
Выходной шлюз .............................................................................................................158

Глава 9. Mixer и политика в сетке .................................................................161

Архитектура .......................................................................................................................161
Обеспечение политики .................................................................................................163
Как работают политики Mixer ...........................................................................................164
Передача телеметрии ....................................................................................................165
Атрибуты ............................................................................................................................166
Отправка отчетов ..........................................................................................................167
Кеширование результатов проверок ...........................................................................167
Адаптеры ............................................................................................................................167
Внутрипроцессные адаптеры .......................................................................................168
Внепроцессные адаптеры .............................................................................................168
Создание политики Mixer и использование адаптеров ..................................................169
Конфигурация Mixer .....................................................................................................169
Адаптер открытого агента политик .............................................................................170
Адаптер Prometheus  .....................................................................................................171

Глава 10. Телеметрия.............................................................................................175

Модели адаптеров .............................................................................................................175
Отчеты телеметрии .......................................................................................................176
Метрики .............................................................................................................................176
Настройка Mixer для сбора метрик ..............................................................................176
Настройка сбора и запроса метрик ..............................................................................177
Трассировка ...................................................................................................................178
Отключение трассировки .............................................................................................180
Журналы .............................................................................................................................181
Метрики .........................................................................................................................183
Визуализация .....................................................................................................................184

Глава 11. Отладка Istio .........................................................................................185

Поддержка интроспекции в компонентах Istio ...............................................................185
Отладка с использованием уровня администрирования ...............................................186
С использованием kubectl ............................................................................................187
Готовность рабочих нагрузок ............................................................................................189
Конфигурация приложения ..........................................................................................189
Сетевой трафик и порты ...............................................................................................189
Сервисы и развертывание ............................................................................................190
Поды ...............................................................................................................................191
Istio: установка, обновление и удаление .........................................................................191
Установка .......................................................................................................................192
Обновление ...................................................................................................................192
Отладка Mixer .....................................................................................................................193
Отладка Pilot ......................................................................................................................194
Отладка Galley ....................................................................................................................194
Отладка Envoy ....................................................................................................................195
Административная консоль Envoy ...............................................................................196
Ответы 503 или 404  ......................................................................................................196

Содержание  9

Внедрение прокси .........................................................................................................196
Совместимость версий ......................................................................................................198

Глава 12. Вопросы развертывания приложений .................................199

Соображения об уровне управления ................................................................................199
Galley ..............................................................................................................................200
Pilot ................................................................................................................................202
Mixer ...............................................................................................................................204
Citadel .............................................................................................................................207
Пример из практики: канареечное развертывание ........................................................208
Кросс-кластерное развертывание ................................................................................214

Глава 13. Продвинутые сценарии .................................................................216

Типы продвинутых топологий .........................................................................................216
Однокластерные сетки..................................................................................................216
Мультикластерные сетки ..............................................................................................217
Рабочие примеры ..........................................................................................................220
Выбор топологии ...............................................................................................................221
Кросс-кластер или мультикластер? .............................................................................221
Настройка кросс-кластера ............................................................................................224
Настройка DNS и развертывание Bookinfo ..................................................................226

Предметный указатель ........................................................................................232

От издательства

Отзывы и пожелания

Мы всегда рады отзывам наших читателей. Расскажите нам, что вы думаете об 
этой книге – что понравилось или, может быть, не понравилось. Отзывы важны 
для нас, чтобы выпускать книги, которые будут для вас максимально полезны.
Вы можете написать отзыв прямо на нашем сайте www.dmkpress.com, зайдя 
на страницу книги, и оставить комментарий в разделе «Отзывы и рецензии». 
Также можно послать письмо главному редактору по адресу dmkpress@gmail.
com, при этом напишите название книги в теме письма. 
Если есть тема, в которой вы квалифицированы, и вы заинтересованы 
в написании новой книги, заполните форму на нашем сайте по адресу http://
dmkpress.com/authors/publish_book/ или напишите в издательство по адресу  
dmkpress@gmail.com.

Скачивание исходного кода примеров

Скачать файлы с дополнительной информацией для книг издательства «ДМК 
Пресс» можно на сайте www.dmkpress.com на странице с описанием соответствующей книги. 

Список опечаток

Хотя мы приняли все возможные меры для того, чтобы удостовериться в качестве наших текстов, ошибки все равно случаются. Если вы найдете ошибку 
в одной из наших книг – возможно, ошибку в тексте или в коде, – мы будем 
очень благодарны, если вы сообщите нам о ней. Сделав это, вы избавите других читателей от расстройств и поможете нам улучшить последующие версии 
данной книги. 
Если вы найдете какие-либо ошибки в коде, пожалуйста, сообщите о них 
главному редактору по адресу dmkpress@gmail.com, и мы исправим это в следующих тиражах.

Нарушение авторских прав

Пиратство в интернете по-прежнему остается насущной проблемой. Издательства «ДМК Пресс» и OʼReilly очень серьезно относятся к вопросам защиты авторских прав и лицензирования. Если вы столкнетесь в интернете с незаконно 
выполненной копией любой нашей книги, пожалуйста, сообщите нам адрес 
копии или веб-сайта, чтобы мы могли применить санкции.
Пожалуйста, свяжитесь с нами по адресу dmkpress@gmail.com со ссылкой на 
подозрительные материалы.
Мы высоко ценим любую помощь по защите наших авторов, помогающую 
нам предоставлять вам качественные материалы.

Об авторах

Ли Калькот – лидер в области инновационных продуктов и технологий, стремящийся обеспечить инженеров эффективными и действенными решениями. 
Являясь основателем Layer5, Ли находится в авангарде движения за развитие 
облачных технологий. Работая в компаниях SolarWinds, Seagate, Cisco и Schneider Electric, он постоянно уделяет внимание открытому исходному коду, передовым и новейшим технологиям. Советник, автор и оратор, Ли активно работает в сообществе как Docker Captain, Cloud Native Ambassador и Google Summer 
of Code Mentor.

Зак Бутчер – инженер-основатель компании Tetrate и основной разработчик 
проекта Istio. Его всегда привлекали трудные задачи, начиная с разработки 
веб-приложений для IE6 и заканчивая управлением сервисами, контролем доступа и иерархической организацией ресурсов Google Cloud Platform. Tetrate – 
небольшая компания, и Зак выполняет в ней широкий круг обязанностей, в том 
числе как системного архитектора, коммерсанта, автора и оратора.

Колофон

На обложке книги «Istio: запуск и работа» изображена вилохвостая чайка (Xema 
sabini). После завершения сезона размножения в арктической тундре на севере 
Аляски, в Нунавате и Гренландии популяции этой маленькой чайки рассеиваются по прибрежным районам на севере Южной Америки и Юго-Западной 
Африки, богатым кормом.
У взрослых особей темно-серая голова с черным кольцом в основании шеи; 
удлиненные крылья сверху бледно-серые с черным передним краем и треугольником белого цвета в центре. У взрослых особей красные глаза, темно-серые лапки, а также черный клюв с желтым кончиком. Молодые птицы первого 
года жизни имеют более тусклое оперение с коричневым окрасом. Длина птиц 
в среднем чуть больше 30 см (маленькая по сравнению с более привычной серебристой чайкой со средней длиной полметра).
В период гнездования эта маленькая чайка питается насекомыми, но 
в остальное время года, проводимое в прибрежных водах, ее рацион состоит 
в основном из мелких рыб, ракообразных и планктона. Эти птицы тянутся 
к местам, где восходящие холодные течения, такие как Перуанское течение 
у северо-западного побережья Перу и Бенгела, поднимающиеся к юго-западу от Африки, выносят на поверхность глубоководные питательные вещества, 
создавая питательный рай для многих видов морской флоры и фауны.
Название этой птице дал английский ученый Уильям Элфорд Лич в честь 
Эдварда Сабина, впервые описавшего ее. Лич посчитал эту птицу достаточно 
уникальной, чтобы отнести ее к отдельному роду (она остается единственным 
членом рода Xema), однако некоторые до сих пор оспаривают это мнение. Будучи важной фигурой в британской зоологии и таксономии начала XIX в., Лич 
был известен экстравагантным и нестандартным подходом к выбору названий, иногда применяя анаграммы из имен коллег и знакомых. Хотя он также 
использовал имена из классической мифологии, что в бóльшей степени соответствует культурным и научным традициям.
Многие животные, изображенные на обложках O’Reilly, находятся под угрозой полного исчезновения; все они важны для мира.
Иллюстрацию для обложки нарисовала Карен Монтгомери, основываясь на 
черно-белых гравюрах из каталога British Birds. 

Введение

Кому стоить прочесть эту Книгу?

Сервисная сетка (service mesh) является важным инструментом организации 
любой облачной инфраструктуры. Эта книга предназначена для тех, кто хочет 
начать работать с Istio. Хорошо, если читатель уже знаком с Docker и Kubernetes, но для изучения Istio по этой книге вполне достаточно базовых знаний 
о работе сети и Linux. Знание языка программирования Go или другого не требуется и не ожидается.
Здесь описаны многие облачные инструменты итехнологии, такие как Prometheus, Jaeger, Grafana, Meshery, Envoy и OpenTracing. Знакомство читателя 
с ними было бы идеальным, но для усвоения содержимого этой книги достаточно упомянутых выше базовых знаний.

почему мы написали эту Книгу?

Эпоха сервисных сеток выводит на новый уровень интеллектуальные сетевые 
сервисы, меняющие архитектуру современных приложений и увеличивающие 
надежность обслуживания. Istio – лишь одна из многих сервисных сеток, но, 
обладая огромным набором функций и возможностей, нуждается в исчерпывающем руководстве.
Цель этой книги – рассказать шаг за шагом, как начать работать с Istio. Она 
проведет вас за собой, крепко держа за руку. Все понятия описываются в четком 
логическом порядке, когда объяснение каждого следующего понятия основывается на предыдущих. Учитывая сложность обсуждаемой темы и активность 
сообщества, книга просто не в состоянии охватить все возможные варианты 
использования, поэтому акцент сделан на основных структурных элементах 
и неустаревающих аспектах проекта. По мере необходимости указываются дополнительные ресурсы.
Прочитав «Istio: запуск и работа», вы познакомитесь с основными возможностями Istio и сможете уверенно развертывать ее в своих облачных окружениях.

соглашения по оформлению

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

 Введение

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

Моноширинный полужирный
Обозначает команды или другой текст, который должен вводиться пользователем.

Моноширинный курсив
Обозначает текст, который должен замещаться фактическими значениями, 
вводимыми пользователем или определяемыми из контекста.

 Так выделяются советы и предложения.

 Так обозначаются советы, предложения и примечания общего характера.

 Так обозначаются предупреждения и предостережения.

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

Спасибо Никки Макдональд (Nikki McDonald), Джону Дэвинсу (John Devins), 
Вирджинии Уилсон (Virginia Wilson), Корбину Коллинзу (Corbin Collins), Деборе 
Бейкер (Deborah Baker) и остальной команде O’Reilly.
И отдельное спасибо всем, кто рецензировал нашу рукопись по мере сборки 
этой книги, особенно нашим техническим рецензентам Майлсу Штайнхаузеру 
(Myles Steinhauser), Гириш Ранганатан (Girish Ranganathan) и Джесс Мэйлс (Jess 
Males).
Ли хотел бы лично сказать: 

«Джилл, твои стойкость и любовь – моя опора в жизни. Ты подарила мне величайшую ценность – наших двойняшек. 
Доктор Джи, мой друг, путешествие только началось. Спасибо, что сопровождали меня. 
Кит, я жажду встречи с тобой, чтобы вновь испытать радость настоящей мужской дружбы».

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