Istio: приступаем к работе
Использование сервисной сетки для связи,безопасности, управления и наблюдения
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Перевод:
Бринь А. Л.
Год издания: 2020
Кол-во страниц: 236
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-97060-863-0
Артикул: 748357.01.99
Вне зависимости оттого, управляете ли вы микросервисами или модернизируете существующие неконтейнерные сервисы, рано или поздно вы все равно окажетесь перед необходимостью организации сервисной сетки. Этот момент наступит тем быстрее, чем больше будет развернуто микросервисов. В предлагаемой вашему вниманию книге Ли Калькот и Зак Бутчер показывают, как сервисная сетка Istio вписывается в жизненный цикл распределенного приложения. Вы изучите ее архитектуру, узнаете об инструментах и API для управления многими функциями Istio, рассмотрите вопросы безопасности и управления трафиком. Особое внимание уделяется устранению неисправностей и отладке.
Книга предназначена для IT-специалистов, в задачу которых входит обеспечение безопасной, быстрой и надежной связи между сервисами.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Ли Калькот и Зак Бутчер 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 со ссылкой на подозрительные материалы. Мы высоко ценим любую помощь по защите наших авторов, помогающую нам предоставлять вам качественные материалы.