iptables против IPVS: что выбрать для Kubernetes?

Kubernetes поддерживает два основных режима работы kube-proxy: iptables и ipvs. Какой из них выбрать? 1. Что такое kube-proxy? kube-proxy управляет сетевыми правилами на узлах Kubernetes, обеспечивая маршрутизацию между сервисами и подами. Поддерживаются режимы iptables, ipvs и устаревший userspace. 2. Режим iptables Режим по умолчанию Использует цепочки NAT в iptables Плюсы: Простота Не требует дополнительных модулей ядра Удобен для отладки Минусы: Падает производительность при большом количестве сервисов Последовательная обработка правил 3. Режим IPVS Использует IP Virtual Server из ядра Linux Использует хэш-таблицы для ускорения Плюсы: Высокая производительность на больших кластерах Поддержка различных алгоритмов балансировки нагрузки Минусы: Требуются модули ядра ip_vs Сложнее в настройке 4. Переключение на IPVS Проверка поддержки ядра: ...

сентября 1, 2025 · 1 минута · 188 слов · DevOps Insights

Что такое ndots в Kubernetes и как оно влияет на DNS

Что такое ndots и зачем оно нужно в Kubernetes Параметр ndots в DNS-настройках определяет, как Kubernetes трактует доменные имена: как полные (FQDN) или как неполные, требующие дополнения из поисковых доменов. Как работает ndots Если в имени содержится количество точек меньше, чем указано в ndots, Kubernetes сначала добавляет поисковые домены из /etc/resolv.conf, а потом делает запрос. Пример При ndots:5 и запросе service.default (в нём одна точка) будут пробоваться: service.default.<search-domain> service.default Затем полное имя Почему это важно Избыточные DNS-запросы — больше обращений к кластерному DNS. Задержки при резолвинге — особенно критично для сервисов. Неверные разрешения — если имя не соответствует шаблону поиска. Рекомендованное значение Обычно в Kubernetes рекомендуют: ...

августа 25, 2025 · 1 минута · 1 слово · John Cena

Gateway API против Ingress: в чём разница?

Gateway API против Ingress в Kubernetes Сетевые настройки в Kubernetes могут сбивать с толку, особенно когда вы хотите открыть доступ к сервисам извне. Самые популярные способы — это Ingress и более современный Gateway API. Разберём, чем они отличаются и когда использовать каждый из них. Что такое Ingress? Ingress — это объект Kubernetes, который описывает правила маршрутизации HTTP/HTTPS трафика к вашим сервисам. Для его работы требуется Ingress Controller, например NGINX или Traefik. ...

августа 5, 2025 · 2 минуты · 258 слов · John Cena

Как добавить кастомную DNS-зону в CoreDNS (Kubernetes)

Зачем добавлять кастомную зону? Это может пригодиться для: Внутреннего тестирования (*.local, *.internal) Разрешения внешних сервисов внутри кластера Переопределения DNS Пошаговая инструкция 1. Редактируем ConfigMap CoreDNS kubectl -n kube-system edit configmap coredns Добавляем зону: apiVersion: v1 kind: ConfigMap metadata: name: coredns namespace: kube-system data: Corefile: | .:53 { errors health kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure fallthrough in-addr.arpa ip6.arpa } forward . /etc/resolv.conf cache 30 loop reload loadbalance } internal.test:53 { hosts { 10.10.10.10 service1.internal.test 10.10.10.11 service2.internal.test fallthrough } } 2. Перезапускаем CoreDNS kubectl -n kube-system rollout restart deployment coredns 3. Проверка Внутри любого пода: ...

июля 19, 2025 · 1 минута · 160 слов · John Cena

Как добавить кастомную DNS-зону в NodeLocal DNSCache

Зачем использовать кастомные зоны в NodeLocal DNSCache? NodeLocal DNSCache ускоряет DNS в Kubernetes за счёт локального CoreDNS на каждом узле. Пользовательские зоны позволяют: Быстро резолвить внутренние или статические имена Заменить внешние DNS-запросы локальными Разделить внутренние и внешние зоны Пошаговая инструкция 1. Получаем ConfigMap kubectl -n kube-system get configmap node-local-dns -o yaml > node-local-dns.yaml 2. Добавляем зону в Corefile В секции Corefile добавьте зону: Corefile: | .:53 { errors cache { success 9984 30 denial 9984 5 } reload loop bind 169.254.20.10 forward . /etc/resolv.conf prometheus :9253 log } internal.zone.local:53 { hosts { 10.10.10.10 service1.internal.zone.local 10.10.10.11 service2.internal.zone.local fallthrough } } Замените internal.zone.local на нужную вам зону. ...

июля 19, 2025 · 1 минута · 1 слово · John Cena