Kubernetes cluster с три Raspberry Pi за малко реализъм

Защо е всичко това?

Оригиналният и приемливо реалистичен план беше – три Raspberry Pi с k3s.

Защо Raspberry Pi

Защото е малко като размер (общо взето колкото кутия цигари), безшумно е (което е важно ако ще стои в дневната), има ужасно много знание за него и общо взето е сладък малък компютър.

Оригиналният план беше да използвам Raspberry Pi 3, но изненадващо се появи версия 4 и разбира се, това и избрах.

Спрях се на три броя с идеята да имам един master и два worker nodes. Доколкото разбирам в момента това е малко остаряло разбиране, но на мен ми изглежда просто и спретнато.

v1

Master node е Raspberry Pi 4 с 4GB RAM, worker nodes са с 2 GB RAM. Моите са от Erelement (нямам нищо общо с тях и това не е affiliate link).

Всички са включени в Anker PowerPort 5 с USB-C кабели (отново това не е affiliate link). Raspberry Pi 4 изисква добро захранване, но те ще работят headless (т.е. без включени клавиатура, мишка, SSD диск и монитор). Също така, не очаквам да са много натоварени защото ще са без потребителският интерфейс и няма да пускам на тях VS Code.

Tрите са включени в най-евтиният switch (също не е affiliate link) който намерих – три порта за трите Pi-та, един upstream и един за стил. 100 MBit switch изглежда много ретро в 2020, но сериозно, какъв е смисъла от 1 GBit? И разбира се, куп мрежови кабели от кашона с кабели. Може би ще работи и с Wifi, но предпочитам да прескоча тази потенциална драма.

Всичко работи чудесно, но има няколко проблема:

  • Заема много място защото трите Pi-та са наслагани хоризонтално върху списание, а бюрото ми е доста малко
  • Мрежовите кабели са натиснати с книга, защото са дебели, Pi-тата са малки и леки – кабела буквално ги вдига във въздуха
  • Захранването изглежда достатъчно, но все пак малко ме притеснява – от време на време на екрана (когато е включен) излиза малката светкавица която казва, че захранването не е достатъчно. От друга страна, може да е недостатъчна заради това, че съм включил екран и клавиатура

Което ни води до:

v2

В която се сетих, че, всъщност, най-накрая имам някаква причина да купя Ubiquiti хардуер (напълно ненужно в случая). Разликите с v1:

  • Ubiquiti UniFi Switch 8 60W – PoE версията е малко по-скъпа от “нормалната”, защо не?
  • Unifi CloudKey – все пак с нещо трябва да управлявам моя switch
  • Monoprice SlimRun Cat6A Ethernet Patch Cable – невъзможно тънки мрежови кабели които не местят Pi-то
  • Pi Rack Case – за да може да отнемат по-малко място. От тези имам много голямо разнообразие, това е модела който просто ми хареса и беше приемливо скъп
  • Радиатори – за по-добро охлаждане

Проблеми:

  • Вентилаторите които идват с rack case са шумни. Освен това единият се счупи след ден използване
  • Все още малко се притеснявам за Anker захранването

v3

Разликите с v2:

Вентилаторите които идват с Pi Rack Case са малки, шумни и общо взето не са хубави. Сетих се, че може да сложа външни вентилатори – по-качествени, тихи и могат да преместят много повече въздух. Причината да са два съм взел от сървърите – единият вкарва въздух, другият го издърпва. Така се получава чуден въздушен поток. Получаваме и сигурност – ако единият спре, другият ще продължи да работи. Вентилаторите може да приличат на вманиачаване, но малкият ми опит по въпроса показва, че електрониката обича да е на хладно.
Чиста случайност е, че размера на 92 мм вентилаторите пасват с Pi Rack Case.
Оказа се, че Pi-тата не са удобни за работа с външни вентилатори – от всяка страна има нещо което стърчи – или мрежов кабел отпред, или захранване отстрани. В резулат, единият вентилатор е накриво – просто опира в захранващият кабел. Има разлика в обема въздух който влиза и реално излиза, но не е проблем.
За да се захранят използвам някакъв адаптер, каквото намерих да се продава. Идеята е, че с регулирането на изходното напрежение мога да променя скороста на въртене на вентилаторите. Те поддържат PWM и може да се направи много интелигентно с отделен контролер и сензор за температура, но реших, че няма смисъл. В момента адаптера е на 9V и на практика не чувам вентилаторите.
Последният плюс на външните вентилатори е, че съм сложил switch-a до този който духа и получавам допълнително охлаждане (не че наистина му трябва).
След цялата тази разправия, температурата на CPU-тата в момента е 35-38C. През лятото стига до около 40C.
Малък детайл е, че master node изглежда най-натоварен. Затова съм го сложил в средата на rack-a, където трябва да минава най-голямо количество въздух – горните краища на вентилаторите имат по-малко обем от средата им. Поне така си представям.
Пластмасовата основа е от парче плексиглас, некадърно отрязано от мен с нож за плексиглас (оказа се, че има и такова нещо). Двата вентилатора са залепени за него с двойно лепяща лепенка. Крачетата са Tesa.
Pi rack-a и вентилаторите нямат физическа връзка. Така мога да извадя rack-a за да го почистя без да правя нещо с вентилаторите.

Проблеми:

  • Тези вентилатори са наистина накриво и дразнят
  • Оригиналните захранвания са сладки кубчета, които са много непрактични. Опират в почти всеки разклонител. Накрая този свърши работа. Може просто да не съм търсил достатъчно усърдно разбира се
  • Непрекъснато се спъвам в разклонителя

v4

Разликите с v3:

  • Четвъртото Pi го сложих в rack-a, беше грозно отгоре
  • Вентилаторите са be quiet! Silent Wings 3 120мм. Отново пасват идеално с rack-a
  • POE HAT – отпада нуждата от разклонител, захранвания и омотани кабели

Raspberry Pi поддържа POE (захранване през мрежовите кабели), но изисква POE switch. Което вече имам, защото аз ги планирам тези неща, с месеци напред (всъщност не).
Така отпада нуждата от разклонители, захранвания, cable management и подобни. Малкият проблем, който осъзнах късно е, че ако дръпнеш мрежовият кабел, отпада и захранването. ¯_(ツ)_/¯.
HAT идват с малки вентилатори, които махнах, защото имам двата 120мм. А и стоят на въздушният поток.

Проблеми:

  • Основният проблем е, че големите радиатори опират в HAT-a и не могат да се използват. Има по-малки, но не знам дали има смисъл. За момента съм ги оставил без радиатори и температурите изглеждат добре – около 37-38C
  • HAT-а се включва доста плътно в Pi и мисля, че почти е блокирал входа на въздушният поток. От друга страна температурите изглеждат добре. Подозирам, че вентилатора който дърпа въздух в върши цялата работа. Мисля си, дали static pressure fan ще е добра идея в този случай, но за сега мисля да оставя нещата така
  • В процепа между HAT и Pi се събира удивително много прах което мисля допълнително обезмисля единият вентилатор. Не е драма, почиства се за секунди с малко въздух под налягане

Така стигаме до последната за момента версия. Тиха е, има минимално количество кабели и е много спретната. Като минус мога да спомена цената разбира се. Въздушният поток изглежда добре като идея, но подозирам, че изобщо не е оптимизиран. Не знам дали някаква кутия няма да реши проблема. От друга страна, може би ще е по-добре да преместя единият вентилатор към задната страна на Pi-тата и така да духа по дължина и без много препятсвият по пътя. Но не мога да си представя къде да сложа другият – мрежовите кабели ще пречат.

Като за край – опитах с RGB вентилатори, но 120 мм превръщат ноща в ден 🙂