Летом прошлого года мы писали о продукте VMware Project Antrea версии 0.9, который позволяет пользователям кластеров Kubernetes на платформе VMware управлять сетевым взаимодействием контейнеров на базе политик.
На базе этой платформы построен коммерческий продукт VMware Container Networking with Antrea - решение для публичных и частных облаков, использующих Open vSwitch, которое позволяет управлять сетевым взаимодействием на нескольких уровнях с предоставлением поддержки со стороны VMware.
Финальный релиз Antrea первой версии добавляет возможности по улучшению управляемости сетевым окружением Kubernetes-native networking, а также улучшает функциональность политик за счет еще большей гранулярности, консистентности и контроля со стороны пользователя. Последний релиз включает в себя политики для исходящего трафика, политики безопасности на уровне кластера и расширенную поддержку экосистемы, в частности, решений Prometheus, ELK и Octant:
Сервер Prometheus может предоставлять информацию в Antrea Controller и Agent.
Плагин Octant может мониторить компоненты и выполнять трассировку пакетов в графическом интерфейсе.
Стек ELK может предоставлять визуализацию карт потоков (flow maps) для сети кластера.
Давайте посмотрим, что именно нового появилось в Antrea 1.0:
1. Политики безопасности на уровне кластера и ярусы политик (Policy Tiering)
Antrea позволяет назначать политики безопасности на уровне кластеров как ИТ-операторам и администраторам, так и разработчикам для контроля сетевого взаимодействия инфраструктуры контейнеров. Помимо Kubernetes Network Policies доступны также политики Antrea Cluster Network Policy (ACNP) и Antrea Network Policy (ANP) CRDs, которые включены по умолчанию. Политики ACNP определяются на уровне кластера, а ANP - на уровне неймспейсов, чтобы дополнить стандартные политики Kubernetes.
Политики можно группировать в ярусы (Tiers) с разным приоритетом, указывая разные эндпоинты для применения правил. Разные политики можно применять к разным группам кластеров, а логгирование трафика и статистики можно отслеживать на уровне политик. Также есть действие Reject для срабатывания политики и диагностика исполнения политики.
Ярусы политик Antrea могут быть представлены так:
2. Политики для исходящего трафика
Средствами Project Antrea вы можете контролировать трафик исходящих узлов (Egress Nodes) и SNAT IP для Pod Egress Traffic (от Pod ко внешней сети).
3. Функции мониторинга и диагностики
Antrea мониторит потоки в модуле Linux conntrack, который предоставляет множество данных на уровнях Pod-to-Pod, Pod-to-Service и Pod-to-External, где можно найти ассоциированные статистики, такие как data throughput, packet throughput и packet counts.
Также есть и вспомогательная информация, такая как имена узлов, имена Pod, неймспейсы и прочее, что добавляется в записи о характеристиках потоков. С помощью Flow Aggregator потоки можно визуализовать на базе анализа данных об источнике и назначении.
Flow Aggregator и Flow Exporter используют IPFix, позволяя потокам приходить в любое решение с поддержкой IPFix. Вот так выглядит визуализация потоков, собранных через Antrea:
Antrea поддерживает использование утилиты Traceflow для диагностики сети. Она формирует запросы на трассировку трафика через OVS-потоки, которые генерируются агентом Antrea. Также в реальном времени можно трассировать трафик между Pods. Также Antrea можно интегрировать с плагином Octant, чтобы увидеть результаты Traceflow на графе:
4. Интеграция со сторонними решениями
Antrea поддерживает работу воркер-узлов на базе Windows путем настройки оверлей-сети для пересылки пакетов между узлами. За счет использования режима transparent mode в Host Networking Service (HNS) контейнеры напрямую соединяются с физической сетью через внешний коммутатор Hyper-V. Также в Antrea 1.0 добавлена поддержка Traceflow для Windows.
Демо использования Traceflow для политик узлов Linux и Windows можно посмотреть ниже:
Также Antrea можно запускать в кластере AWS EKS, кластере Azure AKS и кластере Google GKE. Помимо этого, Docker-образы Antrea теперь доступны и для архитектур arm/v7 и arm64.
5. Режимы Overlay Encap и шифрование
Antrea поддерживает разные режимы Режимы Overlay Encapsulation: GRE, GENEVE, VXLAN и STT. Режим Encap Mode включен по умолчанию - трафик Pod'ов между узлами инкапсулируется и посылается через туннель выбранного типа. Если этого не требуется, то есть режим noEncap mode. Есть также и режим Hybrid mode, в котором трафик Pod не инкапсулируется, если узлы источника и назначения находятся в одной подсети.