Полное руководство Kubernetes, 2е изд.
Copyright © 2018 Packt Publishing
|
Данный документ предоставляется по лицензии Creative Commons Attribution 3.0 License, за исключением разделов со специальными оговорками. |
Первая публикация на английском языке: Май 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
2018-05-12
- Автор
- Джиджи Сэйфан
- Рецензент
- Редактор выпуска
- Редактор
- Редактор разработки содержания
- Технический редактор
- Литературный редактор
- Координатор проекта
- Корректор
- Составитель указателя
- Графика
- Координатор производства
- Изготовитель переплета
Русс Мак-Кендрик
- Предисловие
- Глава 1. Понимание архитектуры Kubernetes
- Глава 2. Создание кластера Kubernetes
- Глава 3. Мониторинг, регистрация и поиск неисправностей
- Глава 4. Высокая доступность и надёжность
- Понятия Высокой доступности
- Практические приёмы Высокой доступности
- Обновление кластера в реальном времени
- Производительность, стоимость и компромиссы большого кластера
- Выводы
- Глава 5. Настройка безопасности, ограничений и учётных записей Kubernetes
- Глава 6. Применение критически важных ресурсов Kubernetes
- Проектирование платформы Hue
- Применение Kubernetes для построения платформы Hue
- Разделение внутренний и внешних служб
- Применение пространства имён для ограничения доступа
- Загрузка заданий
- Смешение не кластерных компонентов
- Применение контейнеров Init для упорядоченного подбора подов
- Развитие платформы Hue с помощью Kubernetes
- Выводы
- Глава 7. Манипулирование хранилищами Kubernetes
- Сквозной контроль постоянных томов
- Типы томов общедоступных хранилищ - GCE, AWS и Azure
- Тома GlusterFS и Ceph в Kubernetes
- Flocker в качестве диспетчера томов данных контейнеров кластера
- Интеграция корпоративного хранилища в Kubernetes
- Тома проектов
- Применение встраиваемых модулей томов вне дерева с помощью FlexVolume
- Интерфейс хранилища контейнера
- Выводы
- Глава 8. Исполнение в Kubernetes приложений с запоминанием состояния
- Сопоставление приложений с сохранением и без сохранения состояния в Kubernetes
- Сопоставление совместных переменных среды и записей DNS для обнаружения
- Доступ к хранимым вовне данным через DNS
- Доступ к хранимым вовне данным через переменные среды
- Поглощение ConfigMap как переменной среды
- Использование избыточного состояния in-memory
- Использование DaemonSet для постоянного хранения с избыточностью
- Применение заявок постоянных томов
- Употребление StatefulSet
- Исполнение кластера Cassandra в Kubernetes
- Быстрое введение в Cassandra
- Docker образ Cassandra
- Подключение Kubernetes и Cassandra
- Создание служб Cassandra без руководства
- Использование StatefulSet для создания кластера Cassandra
- Применение контроллера репликаций для рассредоточения Cassandra
- Использование DaemonSet для рассредоточения Cassandra
- Выводы
- Глава 9. Раскрутка обновлений, масштабирование и квоты
- Горизонтальное автоматическое масштабирование подов
- Применение накатываемых обновлений с помощью автоматического масштабирования
- Обработка ограниченных ресурсов при помощи пределов и квот
- Выбор значения ёмкости кластера и управление им
- Активная доставка обёрток с помощью Kubernetes
- Выводы
- Глава 10. Расширенные сетевые среды Kubernetes
- Основы сетевой модели Kubernetes
- Взаимодействие внутри пода (контейнер к контейнеру)
- Взаимодействие между подами (под с подом)
- Взаимодействие пода со службой
- Внешний доступ
- Сопоставление сетевых сред Kubernetes и Docker
- Поиск и обнаружение
- Встраиваемые сетевые модули Kubernetes
- Сетевые решения Kubernetes
- Действенное применение сетевых политик
- Варианты балансировки нагрузки
- Træfic
- Создание вашего собственного встраиваемого модуля CNI
- Выводы
- Глава 11. Исполнение Kubernetes во множестве облачных решений и федерализация кластеров
- Основы федерализации кластеров
- Важные случаи применения федерализации кластеров
- Управляющая панель федерализации
- Федеративные ресурсы
- Жёсткие части
- Управление федерализацией кластеров Kubernetes
- Установка федерализации кластеров с нуля
- Начальная установка
- Использование официального образа Hyperkube
- Исполнение панели управления федерализацией
- Регистрация кластеров Kubernetesв имеющейся федерализации
- Обновление KubeDNS
- Останов федерализации
- Установка федерализации кластера при помощи Kubefed
- Исполнение федеральных рабочих нагрузок
- Выводы
- Глава 12. Индивидуализация Kubernetes - API и встраиваемые модули
- Работа с API Kubernetes
- Расширение API Kubernetes
- Создание встраиваемых модулей Kubernetes
- Создание индивидуального встраиваемого модуля планировщика
- Основы архитектуры планировщика Kubernetes
- Упаковка планировщика
- Развёртывание индивидуального планировщика
- Исполнение другого индивидуального планировщика в имеющемся кластере
- Назначение подов индивидуальному планировщику
- Проверка того, что все поды были распланированы при помощи вашего индивидуального планировщика
- Употребление webhook управления доступом
- Выводы
- Глава 13. Обработка Диспетчера пакетов Kubernetes
- Глава 14. Будущее Kubernetes
- Указатель
За последние несколько лет стала одной из самых индивидуальных технологий; он был адаптирован в качестве платформы кластера контейнеров и оркестрации со стороны всех основных общедоступных поставщиков облачных решений, причём он быстро стал стандартом для всей индустрии.
Помимо этого Kubernetes является решением с открытым исходным кодом и у вас имеется прекрасная основа для размещения своей собственной Платформы в качестве Службы, или PaaS (Platform as a Service), у множества общедоступных и частных поставщиков; благодаря её архитектуре вы можете даже исполнять её на ноутбуке, причём вы получите состоятельную практику на всех ваших платформах.
Её архитектура делает её исключительной платформой для исполнения функций работающих без сервера. В этой книге мы взглянем на различные платформы, которые могут быть как развёрнуты, так и интегрированы с помощью Kubernetes, что означает что у вас будет не только PaaS, но также и надёжная платформа Функций в качестве Служб (FaaS, Function as a Service), исполняемая в вашей среде Kubernetes.
Эта книга в основном для инженеров по эксплуатации, архитекторов облачных решений, а также разработчиков , которые хотят размещать свои функции для работы без сервера в каком- то кластере Kubernetes.
Глава 1. Понимание архитектуры Kubernetes
Глава 2. Создание кластера Kubernetes
Глава 3. Мониторинг, регистрация и поиск неисправностей
Глава 4. Высокая доступность и надёжность
Глава 5. Настройка безопасности, ограничений и учётных записей Kubernetes
Глава 6. Применение критически важных ресурсов Kubernetes
Глава 7. Манипулирование хранилищами Kubernetes
Глава 8. Исполнение в Kubernetes приложений с запоминанием состояния
Глава 9. Раскрутка обновлений, масштабирование и квоты
Глава 10. Расширенные сетевые среды Kubernetes
Глава 11. Исполнение Kubernetes во множестве облачных решений и федерализация кластеров
Глава 12. Индивидуализация Kubernetes - API и встраиваемые модули
Операционные системы
-
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 или более нового.
-
Доступ, по крайней мере, к одной из следующих общедоступных облачных служб
-
AWS: https://aws.amazon.com/.
-
Google Cloud: https://cloud.google.com/.
-
Microsoft Azure: https://azure.microsoft.com/.
-
DigitalOcean: https://www.digitalocean.com/.
-
Windows 10 Professional
Вы можете выгрузить все файлы примеров кода для данной книги из своей учётной записи www.packtpub.com. Если вы приобрели эту книгу в ином месте, будьте добры, пройдите в www.packtpub.com/support и зарегистрируйтесь чтобы иметь эти файлы высланные непосредственно вам по электронной почте.
Вы можете выгрузить все файлы кодов пройдя следующие шаги:
-
Зайдите зарегистрированным пользователем на www.packtpub.com.
-
Выберите закладку SUPPORT.
-
Кликните по Code Downloads & Errata.
-
Введите название нужной вам книги в блоке 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.