Ответ
Да, приложения из разных неймспейсов могут взаимодействовать внутри кластера по умолчанию. Для доступа используется полное доменное имя (FQDN) сервиса в формате:
<service-name>.<namespace-name>.svc.cluster.local
Пример: Pod в неймспейсе frontend обращается к сервису api-service в неймспейсе backend:
curl http://api-service.backend.svc.cluster.local/api/v1/users
Ключевые моменты для DevOps:
- Сетевая политика: По умолчанию трафик разрешен, но его можно (и нужно) ограничить с помощью
NetworkPolicy. Например, политика, разрешающая трафик только от определенных неймспейсов:apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-from-frontend namespace: backend spec: podSelector: {} policyTypes: - Ingress ingress: - from: - namespaceSelector: matchLabels: name: frontend - Service Discovery: Внутрикластерный DNS (обычно CoreDNS) автоматически разрешает эти имена.
- Изоляция: Для полной изоляции рабочих нагрузок используются отдельные неймспейсы в сочетании с
NetworkPoliciesи RBAC, а не отдельные кластеры (что увеличивает операционные расходы).