[Перевод] Советы по запуску кластера Kubernetes на Raspberry Pi

Этот небольшой пост — продолжение статьи о создании кластера Kubernetes на Raspberry Pi, где приводится описание полностью автоматизированной сборки с кодом. Хабравчан сложно удивить, но автор рассказывает о том, чего, как он надеется, вы не знали или о чём не задумывались до сегодняшнего дня.


Контроль температуры

Как и любое вычислительное устройство, одноплатный компьютер Raspberry Pi может перегреваться — чем больше нагрузка на него, тем активнее он вырабатывает тепло. В комплект поставки Raspberry Pi входит только сама плата и ничего больше. 

Я поступил так: обложил плату радиаторами, и на первых порах меня это выручало. Радиаторы работали довольно сносно, но лишь до тех пор, пока я не решил опробовать на кластере чуть более тяжёлые приложения.

После небольшого исследования я нашёл специализированный вентилятор Fan SHIM Pimoroni для Raspberry Pi. Этот вентилятор идеально подходит для моей кластерной структуры и не требует установки дополнительных разделителей, увеличивающих высоту платы Pi. Для управления работой вентиляторов можно воспользоваться кодом из моей предыдущей статьи, изменив его так, чтобы он соответствовал целям управления.

Вентиляторы работают отлично, особенно в связке с радиаторами. Я был так ими доволен, что вначале даже не обратил внимания на их светодиодную индикацию. Тепло идёт вверх, поэтому нижняя часть платы Pi в объединённой конструкции подогревает верхнюю.

После того как я разместил платы горизонтально (я сделал только это, ничего больше), температура упала на 10 градусов (!).

Хранение данных и долговечность

Запуск Raspberry Pi с карты памяти по определению может вызвать проблемы. К счастью, почти за весь год, пока у меня на Raspberry Pi работал Kubernetes, я не испытывал никаких проблем; но возникали случаи, когда при определённых настройках конфигурации скорость записи на основной плате падала до 30 кбит/с, а на рабочих платах — до 5 кбит/с.

В качестве хранилища я использую NFS: у меня есть свободный прекрасно работающий мини-компьютер Intel NUC, и я его настроил как сетевое хранилище, поэтому могу ограничивать запись на карты памяти плат, а с помощью утилиты log2ram можно обезопасить себя ещё больше. 

Я работаю с картами памяти большого объёма, поэтому мне нужно, чтобы вся система могла стабильно работать в течение довольно длительного времени.

Замечание по картам памяти: я использую SanDisk Extreme Pro 128GB, A2, UHS-I, U3, V30 по нескольким причинам. 

Первая: чем больше свободного пространства, тем меньше вероятность выхода из строя всей карты, и вторая причина — пожизненная гарантия на карты памяти Sandisk, что, в случае выхода из строя всего кластера, сэкономит мне два дополнительных Raspberry Pi. Чтобы избежать нежелательных задержек, если сбой всё-таки произойдёт, советую всегда иметь под рукой резервную карту памяти. Никогда не знаешь наперёд, когда она может понадобиться.

Работа с сетью

Узлы кластера, как правило, часто взаимодействуют друг с другом, поэтому надо каким-то образом предотвратить термическое дросселирование, не перегружая при этом остальную часть сети лишним трафиком. В этом случае я настоятельно рекомендую использовать дополнительный гигабитный коммутатор (управляемый или неуправляемый), особенно если Pi находится в постоянном контакте с сервером NFS.

Сетевой трафик незадействованного кластера
Сетевой трафик незадействованного кластера

Подключение кластера напрямую к домашнему Wi-Fi-маршрутизатору, особенно к типовому маршрутизатору от провайдера Интернета, — не самая хорошая идея, так как характеристики таких маршрутизаторов оставляют желать лучшего, ведь они оптимизированы под обычного пользователя.

Использование сетевых ресурсов активным кластером
Использование сетевых ресурсов активным кластером

Если вас интересуют сетевые аспекты, ознакомьтесь с моей предыдущей статьёй, в которой я подробно описал настройку моей домашней сети.

Питание

Энергопотребление Raspberry Pi по данным raspi.tv
Энергопотребление Raspberry Pi по данным raspi.tv

Raspberry Pi практически не потребляет мощности и имеет высококачественные разъёмы, поэтому я решил использовать блок питания с несколькими розетками. Мой выбор пал на RAVPower Official — блок питания на 60 Вт (ссылка на Amazon). Он отлично справляется с работой: при шести подключённых Raspberry Pi у меня не было ни одного сбоя электропитания.

Устройство имеет один «вход». Оно не только миниатюрное, но и очень удобное: подключаться к ИБП стало намного проще, чем через стандартный удлинитель с несколькими розетками. Ещё один совет: подбирайте кабели питания как можно более высокого качества и как можно более короткие, это позволит избежать сбоев. Кроме того, рекомендую отключить Wi-Fi на Raspberry Pi, так как эта функция пусть немного, но потребляет энергию.

Разгон процессора Pi

Разгон процессора Raspberry Pi может повлечь за собой снятие гарантии!

После обязательного предупреждения хочу затронуть тему регулировки параметров Pi. Да, разогнать процессор Pi даже проще, чем можно было подумать. Сделать это можно, просто изменив значения параметров файла /boot/userconfig.txt, используемого rPI (и включённого в /boot/config.txt) в процессе загрузки.

#uncomment to overclock the arm. 700 MHz is the default.
over_voltage=2
arm_freq=1750

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

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

Узнайте, как прокачаться и в других специальностях или освоить их с нуля:

Другие профессии и курсы
 

Источник

devops, Kubernetes, raspberry pi, skillfactory, вентиляторы, домашний сервер, охлаждение, разгон, разработка, трафик

Читайте также