Кластеры Kubernetes в NetAngels предоставляются пользователям в преднастроенных конфигурациях, готовых к использованию. Однако для эффективного развертывания приложений и управления кластером необходимо понимать специфику его настроек и особенностей работы. Рассмотрим важные аспекты настройки кластеров в NetAngels
В кластерах NetAngels узлы (nodes) не имеют назначенных белых (публичных) IP-адресов. Все узлы размещаются в приватной сети, что обеспечивает изоляцию от внешнего трафика.
~ $ kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
worker-1 Ready <none> 8d v1.33.3+k0s 100.106.34.1 <none> Ubuntu 24.04.3 LTS 6.8.0-90-generic containerd://1.7.27
worker-2 Ready <none> 8d v1.33.3+k0s 100.106.34.2 <none> Ubuntu 24.04.3 LTS 6.8.0-90-generic containerd://1.7.27
worker-3 Ready <none> 8d v1.33.3+k0s 100.106.34.3 <none> Ubuntu 24.04.3 LTS 6.8.0-90-generic containerd://1.7.27
Узлы кластера размещаются в той же приватной сети, что и виртуальные машины, но используются различные адреса сетей, что позволяет обеспечить изоляцию между рабочими виртуальными машинами и внутренними компонентами кластера.
Для адресации узлов кластера используется приватная сеть с маской /24, где первые 100 адресов сети и адреса с 225-го и далее зарезервированы для работы кластера Kubernetes, а оставшиеся адреса (101-224) могут быть добавлены к виртуальным машинам для получения доступа к сети узлов кластера.
| Диапазон адресов | Назначение |
|---|---|
| 100.106.34.1 - 100.106.34.100 | Адресация узлов кластера |
| 100.106.34.101 - 100.106.34.224 | Адреса доступные для использования в виртуальных машинах |
| 100.106.34.225 - 100.106.34.254 | Адреса служебных сервисов |
Ограничения на входящий и исходящий трафик в кластерах Kubernetes следующие:
| Тип кластера | Ограничение исходящего трафика | Ограничение на сессию |
|---|---|---|
| Стандартный | 1 Гбит/с | Не более 1 Гбит/с на сессию |
| Отказоустойчивый | 3 Гбит/с | Не более 1 Гбит/с на сессию |
Ограничения трафика не включают в себя ограничения на балансировщики нагрузки. Балансировщики нагрузки работают по своим правилам и не подвержены общим ограничениям трафика
В NetAngels в качестве дистрибутива Kubernetes используется k0s. Это сертифицированный дистрибутив Kubernetes упрощающий управление кластером, однако, имеющий свои особенности. Одна из них это размещение директории kubelet на узлах кластера. Она размещена по пути /var/lib/k0s/kubelet, в отличие от стандартного /var/lib/kubelet. Некоторые CSI при своей настройке могут потребовать явного указания корректного каталога kubelet.
По-умолчанию узлы кластера содаются с одним подключенным диском. На нем установлена операционная система, компоненты Kubernetes, а так же хранятся образы работающих на узле контейнеров. Не рекомендуется использовать загрузочные диски для хранения прочей информации ни для каких целей, кроме тестирования, поскольку данные загрузочного диска могут быть удалены при пересоздании узла. Для хранения данных ваших приложений рекомендуется использовать дополнительные диски.
Для хранения данных stateful приложений, таких как базы данных, к группам нод кластера можно подключить дополнительные диски. При подключении к группе нод группы дополнительных дисков, к каждой ноде этой группы будет подключен отдельный, не связанный с остальными локальный диск заданного размера. Локальные диски производительнее сетевых дисков, но, в отличие от сетевых, они привязаны к конкретному узлу в кластере.
В дальнейшем эти диски можно использовать для организации хранения данных ваших приложений, как подключив блочное устройство к подам напрямую, так и используя CSI для организации динамического выделения Persistent Volume, например, с использованием LVM.