Что такое Cilium?
Cilium — это open-source решение для сетевой безопасности и наблюдаемости в Kubernetes, основанное на eBPF (extended Berkeley Packet Filter) технологии. Cilium обеспечивает networking, security и observability для cloud-native окружений с высокой производительностью и гибкостью.
Основные возможности Cilium
- eBPF-based networking — высокопроизводительные сетевые операции в ядре Linux
- Network policies — детальное управление сетевым трафиком
- Load balancing — L3/L4/L7 балансировка нагрузки
- Service mesh — встроенные возможности service mesh
- Observability — мониторинг сетевого трафика и метрики
- Multi-cluster — связывание кластеров через Cluster Mesh
- Encryption — автоматическое шифрование трафика
Архитектура Cilium
- Cilium Agent — DaemonSet на каждом узле кластера
- Cilium Operator — центральный компонент управления
- eBPF programs — программы, загружаемые в ядро Linux
- Hubble — компонент наблюдаемости
- etcd/Kubernetes API — хранение конфигурации
Установка Cilium
1# Установка Cilium CLI
2CILIUM_CLI_VERSION=$(curl -s https://raw.githubusercontent.com/cilium/cilium-cli/master/stable.txt)
3CLI_ARCH=amd64
4curl -L --fail --remote-name-all https://github.com/cilium/cilium-cli/releases/download/${CILIUM_CLI_VERSION}/cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}
5sha256sum --check cilium-linux-${CLI_ARCH}.tar.gz.sha256sum
6sudo tar xzvfC cilium-linux-${CLI_ARCH}.tar.gz /usr/local/bin
7rm cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}
8
9# Установка Cilium в кластер
10cilium install
11
12# Проверка статуса
13cilium status --wait
14
15# Установка Hubble для observability
16cilium hubble enable --ui
Пример Network Policy
L7 Network Policy
1# HTTP-level политики
2apiVersion: "cilium.io/v2"
3kind: CiliumNetworkPolicy
4metadata:
5 name: "l7-rule"
6spec:
7 endpointSelector:
8 matchLabels:
9 app: api-server
10 ingress:
11 - fromEndpoints:
12 - matchLabels:
13 app: web-frontend
14 toPorts:
15 - ports:
16 - port: "80"
17 protocol: TCP
18 rules:
19 http:
20 - method: "GET"
21 path: "/api/v1/.*"
Мониторинг с Hubble
Когда использовать Cilium
- Высокопроизводительные Kubernetes кластеры
- Микросервисные архитектуры с детальными сетевыми требованиями
- Необходимость в L7 network policies
- Multi-cluster networking
- Требования к сетевой observability
- Service mesh функциональность без дополнительных sidecar
- Compliance требования с encryption
Преимущества Cilium
- Производительность — eBPF обеспечивает высокую производительность
- Гибкость — L3/L4/L7 политики безопасности
- Observability — детальная видимость сетевого трафика
- Безопасность — identity-based security модель
- Масштабируемость — эффективная работа в больших кластерах
- Cloud-native — разработан специально для Kubernetes
Cilium vs другие CNI
- vs Calico — eBPF vs iptables, лучшая производительность
- vs Flannel — больше security функций
- vs Weave — лучшая observability
- vs Antrea — более зрелое решение
Cluster Mesh для Multi-cluster
Troubleshooting
Интеграция с другими инструментами
- Prometheus — экспорт метрик
- Grafana — дашборды для мониторинга
- Jaeger — трейсинг сетевых запросов
- Falco — runtime security мониторинг
- Istio — интеграция с service mesh
Альтернативы Cilium
- Calico — популярный CNI с network policies
- Flannel — простой overlay network
- Weave Net — простая установка и использование
- Antrea — CNI от VMware на основе Open vSwitch
- Kube-router — all-in-one networking решение
- AWS VPC CNI — native AWS networking
FAQ
Подходит ли Cilium для продакшена?
Да, Cilium широко используется в production крупными компаниями, включая Google, Adobe, Datadog. Это зрелый проект CNCF с активной поддержкой сообщества.
Какие требования к инфраструктуре?
Cilium требует Linux kernel версии 4.9+ с поддержкой eBPF. Рекомендуется kernel 4.19+ для полной функциональности. Работает на большинстве облачных провайдеров.
Сложно ли мигрировать на Cilium?
Миграция с других CNI может потребовать планирования, особенно в production. Рекомендуется тестирование в staging окружении и постепенная миграция.