Про книгу «Kubernetes для DevOps»

В последнее время я решил разобраться с Kubernetes. Как правило, когда нужно изучить что-то новое, я предпочитаю это изучать по книгам, а не по разрозненным статьям в интернете. Чтобы понять, что такое Kubernetes и с чем его едят, купил книгу Джона Арундела и Джастина Домингуса «Kubernetes для DevOps». Когда заказывал эту книгу, то меня немного смущало это самое «для DevOps», я боялся, что там упор будет именно на практики DevOps с использованием Kubernetes, а не на сам Kubernetes (в оригинале книга называется «Cloud Native DevOps with Kubernetes. Building, Deploying, and Scaling Modern Applications in the Cloud»). К счастью, мои опасения не оправдались, и книга посвящена в первую очередь Kubernetes, а DevOps-у отведено место только в последней четверти книги.

Эта книга предназначена для тех, кто никогда до этого не запускал Kubernetes и не знает, с какой стороны к нему подступиться. В книге очень аккуратно описываются разные аспекты работы с Kubernetes на примере развертывания очень маленького веб-приложения на Go (буквально, Hello World, поэтому Go знать не обязательно). При этом желательно иметь представление, что такое Docker и как с ним работать, что такое Dockerfile, но и это все кратко, буквально самый минимум, рассказывается в начале книги.

Работа с Kubernetes в книге начинается с развертывания демонстрационного приложения на локальном компьютере, используя Docker Desktop под Windows. Для линуксоидов упоминается инструмент Minikube для развертывания кластера у себя на компьютере, но особо подробно про него не говорится, подразумевая, что линуксоиды сами справятся с чтением небольшой документации для того, чтобы запустить Minikube. По личному опыту скажу, что проблем с этим не возникло.

После того, как вы запустите кластер локально, авторы достаточно подробно начнут описывать различные способы запуска Kubernetes на боевом сервере, рассмотрят варианты самостоятельной установки и администрирования Kubernetes, а также с использованием специальных сервисов от Amazon, Google и Microsoft, постоянно напоминая, что если у вас нет особых причин самостоятельно возиться с администрированием, лучше используйте Kubernetes как сервис независимо от того, где у вас расположены сервера для вашего приложения. То есть не обязательно покупать сервис с Kubernetes от Amazon, даже если вы используете AWS, хотя это было бы логично. На протяжении целой главы авторы уверяют, что поднимать с нуля и поддерживать на должном уровне Kubernetes сложно.

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

Разумеется, в книге рассказывается, как работать с приложением kubectl, через которое происходит управление кластером, но постоянно подчеркивается, что лучше всегда управлять конфигурацией кластера через манифесты в формате YAML, а менять параметры кластера через kubectl стоит только в крайнем случае или для отладки, чтобы потом опробованные настройки поместить в файл конфигураций.

Я не буду подробно описывать, про какие внутренние объекты Kubernetes в книге идет речь, это будет уже слишком детальное техническое погружение, перечислю только некоторые высокоуровневые темы, которые затрагиваются в книге. Во-первых, это безопасность, резервное копирование, тестирование и наблюдение за работоспособностью запущенных приложений. Причем тестирование и наблюдение как изнутри кластера, так и вне его. Это сбор и обработка логов. Рассказывается о группировке и планировании pod-оболочек по узлам: кто с кем должен быть запущен на одном узле, а кого лучше развести по отдельным узлам и т.п., как фильтровать pod-оболочки с помощью меток. Рассматриваются разные варианты для хранения секретных данных. Рассматривается вопрос о постепенно развертывании приложений (сине-зеленые, радужные и канареечные развертывания). Рассказывается о развертывании приложений с помощью Helm, но не очень подробно, а также упоминаются альтернативы этому способу развертывания.

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

Что еще мне понравилось в книге, так это постоянные советы относительно того, как принято делать какие-то вещи, а что делать не стоит. Это особенно полезно новичкам, которые узнают о каких-то возможностях, но при этом не понятно, как правильнее ту или иную вещь сделать. Разумеется, нет лучшего способа изучения чего-то нового, как хождение по граблям, но иногда хочется хотя бы пару грабель избежать (и наступить на них чуть позже, потому что по-другому не бывает 🙂 ).

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

Итого, книга мне очень понравилась. Если вам нужно начать работать с Kubernetes, и вы до этого только слышали это название, но никогда его не запускали, вполне можно начать с этой книги. В ней очень аккуратно и методично расписаны основные принципы работы с Kubernetes с разных сторон, дается множество полезных советов. Хотя книга достаточно небольшая (чуть меньше 400 страниц), но она очень насыщена полезной информации и без воды. Да еще и перевод хороший (после некоторых книжек, которые мне попадались в последнее время я готовился к худшему), а в процессе повествования есть перекрестные ссылки не только на главы, но и на конкретные страницы, что очень помогает вспомнить, о чем шла речь в предыдущих главах. В общем, книгу очень рекомендую.

PS. Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.

Пожалуйста, оцените запись

УжасноПлохоТак себеХорошоОтлично (Количество голосов: 4, средняя оценка: 5,00)
Загрузка...

комментария 2

  1. Алексей:

    Евгений, привет!

    Немного хочу внести коррективы: начинать про кубер лучше с «Кубернетес в действии», если человек действительно новичёк в этом деле. Удивительно, как человек, практически стоявший у истоков этой системы оркестрации, смог написать так, чтобы было ясно и понятно любому новому пользователю. Потом эта или «Kubernetes: Лучшие практики» (шикарно дополняет некоторые моменты, лучше после действия практики сразу и начинать).

    Может мнение субъективное, но как человек, который с этим работает постоянно, рекомендую обычно в таком порядке. 🙂

  2. Jenyay:

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

Leave a comment

Subscribe without commenting