Как стать автором
Обновить

Комментарии 10

Я очень извиняюсь )
image
Спасибо за исчерпывающее руководство.

Спасибо, полезно.


Можно конечно пойти немного более простым путём и поручить эту работу ansible.

Мне кажется, что цель автора была рассказать про механику развертывания кластера, а чем это делать — личное дело каждого читателя.
Kubespray использует ansible, если честно я им не пользовался, не знаю почему. В моём случае kubeadmin не отрабатывал должным образом :)
Статья подробная, как обзор по основным частям Kubernetes подойдет.
Но, если не хочется тратить время на повторную установку и перенастройку, то лучше использовать готовые утилиты. Kubespray (уже упомянут в комментариях), либо самый простой и быстрый вариант — rancher/rke. Как минимум, для первоначального знакомства подойдет.

А в качестве площадки — Hetzner Cloud. За ~20$ можно 3 сервера, в сумме на 6 vCPU и 12 GB RAM.

Если хочется иметь мультимастер на всех нодах (все ноды и мастеры и воркеры) — требования кубспрея это 4+ гига памяти на каждом сервере, например

Если каждую ноду использовать как мастер и воркер, то да, нужно много памяти и cpu. 2+ гигабайта на все процессы Kubernetes плюс должен быть большой резерв. Иначе, в случае нехватки памяти весь мультимастер превратится в тыкву. Если не использовать сервера с большим кол-вом ресурсов, то 1 ноды на мастер с 2 GB памяти и 1 CPU будет достаточно. В случае недоступности мастера (по сети), воркеры продолжат работать.
И важно указывать memory requests, memory limits для все подов, чтобы в случае чего системные сервисы не отлетали с нехваткой памяти и scheduler равномерно распределял нагрузку.
Для первоначального знакомства можно и в GCP 300$ получить и юзать kubernetes оттуда.
Дополню здесь про обычную маршрутизацию. На уровне L2 фреймы могут фильтроваться лишь по MAC-адресу. Неважно, что у вас стоит в IP-заголовках, они просто не видны на уровне L2. Другими словами: или у вас есть коннективити между хостами по L3 во всех случаях, или у вас ее нет совсем. Т.к. работает VXLAN, то в вашем случае коннективити есть. Посмотрите на нодах arp таблицу одноименной утилитой, адреса обеих нод присутствуют в таблицах друг-друга.
Все вышесказанное верно только если ноды находятся в одной подсети и трафик не идет через шлюз провайдера. В этом случае разговоры о L2 вообще не уместны, а трафик может фильтроваться по ip-заголовкам согласно правилам (возможно «нечестным») на шлюзе провайдера.

Если ищете сетевое решение без инкапсуляции, советую посмотреть в сторону Calico. Они утверждают, что для работы нужен только L3 и это правда :) У многих, кто использует k8s в проде, возникает вопрос сетевой безопасности, Calico предоставляет очень удобные сетевые политики, с помощью которых можно управлять фильтрацией любого траффика в вашем кластере.

P.S. Привет из Минска бывшим коллегам :)
Спасибо, с точки зрения бытового пользования vxlan'а вполне хвататит. Про host-gw поддержку в целом Digital Ocean и Linode отписались, что типо у них пока так вот не взлетит :).
Зарегистрируйтесь на Хабре, чтобы оставить комментарий