Миграция проекта из AWS на Bare Metal (часть 3)

MetalLB

MetalLB - это инструмент для Kubernetes, который предоставляет LoadBalancer-ы для кластеров, которые используют собственный сетевой стек вместо облачных провайдеров. В этом посте мы рассмотрим, как MetalLB работает и как его использовать.

Одной из главных особенностей MetalLB является то, что он может использовать протоколы BGP и ARP для связи с сетью кластера. Это означает, что он может предоставлять IP-адреса и маршрутизацию для сервисов Kubernetes, которые используют тип LoadBalancer. Кроме того, MetalLB может быть настроен для использования нескольких конфигураций, чтобы обеспечить отказоустойчивость и балансировку нагрузки.

Его ставим в кластер, чтоб можно было проще экпортить сервисы в мир.

Traefik

Traefik - это обратный прокси и балансировщик нагрузки, который может использоваться для управления трафиком в среде контейнеризации, включая Kubernetes. Traefik может автоматически обнаруживать новые сервисы, создавать для них маршруты и балансировать нагрузку между экземплярами сервисов. Он также обладает множеством функций, таких как TLS-шифрование, поддержка WebSockets, мониторинг и другие, которые делают его полезным инструментом для развёртывания микросервисных приложений.

С этим все понятно. Но тут при подключении TLS нужно быть внимательным. Я наткнулся на парочку сайд-эффектов.

External DNS

ExternalDNS - это инструмент, который автоматически управляет записями DNS для сервисов Kubernetes в облачных провайдерах, таких как AWS, Google Cloud и других. ExternalDNS позволяет автоматически создавать и обновлять записи DNS для сервисов Kubernetes, обеспечивая удобный доступ к приложениям и сервисам через доменные имена. Это удобно для управления динамическими IP-адресами и обеспечивает автоматическое масштабирование и управление сервисами Kubernetes в облаке.

В нашем случае эта тулза автоматически заводит сабдомены в CloudFlare.

Metrics server

Metrics Server - это компонент Kubernetes, который автоматически собирает и хранит метрики производительности в режиме реального времени для всех узлов и контейнеров в кластере. Metrics Server позволяет операторам и разработчикам мониторить производительность и использование ресурсов, таких как CPU, память и сеть, для эффективного управления кластером и его ресурсами. Этот инструмент широко используется для масштабирования и оптимизации приложений в Kubernetes.

Просто Must Have для кластера, если вы хотите понимать, что у вас с ресурсами в подах и на основе этих данных скейлиться.

NodeLocalDNS

NodeLocalDNS - это функция, добавленная в Kubernetes, которая обеспечивает локальное кэширование DNS-запросов для узлов кластера. Это позволяет узлам быстро решать DNS-запросы без обращения к глобальным DNS-серверам в интернете, что улучшает производительность и надежность сети. NodeLocalDNS работает вместе с CoreDNS, основным DNS-сервером Kubernetes, и позволяет узлам быстро получать доступ к сервисам в кластере, что особенно важно при работе с множеством микросервисов и контейнеров.

Обычное дело, когда у вас много сервисов и DNS начинает в кластере подтупливать. Ставим эту штуку и нагрузка на CoreDNS падает в разы.

Все эти компоненты установлены и настроены. Потом деплоим тестовый WhoAmI или какой-нибудь Nginx, чтобы проверить как все работает. На данном этапе базовая функциональность кластера проверена и пока все идет хорошо.

Дальше будет ArgoCD и попытка задеплоить образы из реджистри Амазона.

Поделиться: DiasporaTwitterFacebookLinkedInHackerNewsEmailReddit

Похожие записи:



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