Справочная информация
-
- Обзор
- Best practices для сетевых политик
- 1. Принцип наименьших привилегий
- 2. Начинайте с разрешающих правил
- 3. Всегда разрешайте DNS
- 4. Разрешайте доступ к KubeAPI при необходимости
- 5. Ingress и сетевые политики
- 6. Используйте селекторы подов
- 7. Тестируйте в dev-неймспейсе
- 8. Документируйте политики
- 9. Избегайте конфликтов deny-all
- 10. Кластерные vs неймспейсные политики
На этой странице
-
- Обзор
- Best practices для сетевых политик
- 1. Принцип наименьших привилегий
- 2. Начинайте с разрешающих правил
- 3. Всегда разрешайте DNS
- 4. Разрешайте доступ к KubeAPI при необходимости
- 5. Ingress и сетевые политики
- 6. Используйте селекторы подов
- 7. Тестируйте в dev-неймспейсе
- 8. Документируйте политики
- 9. Избегайте конфликтов deny-all
- 10. Кластерные vs неймспейсные политики
Обзор
На этой странице — рекомендации по созданию и настройке сетевых политик Cilium.
Best practices для сетевых политик
1. Принцип наименьших привилегий
Разрешайте только необходимый трафик. Вместо «разрешить всё» — явно укажите разрешённые направления, порты и селекторы.
2. Начинайте с разрешающих правил
Сначала определите, какой трафик нужен приложению (DNS, KubeAPI, backend-сервисы), и добавьте разрешающие правила. Запрещающие правила добавляйте точечно.
3. Всегда разрешайте DNS
Если поды обращаются по имени (FQDN, Service), разрешите egress к Kubernetes DNS:
egress:
- toEndpoints:
- matchLabels:
io.kubernetes.pod.namespace: kube-system
k8s-app: kube-dns
toPorts:
- ports:
- port: "53"
protocol: UDP
- port: "53"
protocol: TCP
4. Разрешайте доступ к KubeAPI при необходимости
Поды, которым нужен доступ к API-серверу (операторы, контроллеры), должны иметь egress к kube-apiserver (toEntities).
5. Ingress и сетевые политики
При включённых политиках явно разрешите входящий трафик от Ingress-контроллера к backend-подам. Иначе запросы извне не дойдут до приложения.
6. Используйте селекторы подов
Ограничивайте политики селекторами (endpointSelector, fromEndpoints, toEndpoints), чтобы не затрагивать лишние поды.
7. Тестируйте в dev-неймспейсе
Перед применением в production проверьте политики в тестовом неймспейсе. Используйте kubectl run и curl для проверки связности.
8. Документируйте политики
Добавляйте description в CiliumNetworkPolicy, чтобы было понятно, зачем создано правило.
9. Избегайте конфликтов deny-all
Политика deny-all блокирует весь трафик. Убедитесь, что перед ней или в других политиках есть все необходимые разрешающие правила.
10. Кластерные vs неймспейсные политики
ClusterwideCiliumNetworkPolicy применяется ко всему кластеру. Используйте для общих правил (например, доступ к DNS). Неймспейсные политики — для изоляции конкретных приложений.