1.6 KiB
1.6 KiB
Namespace
#kubernetes #multi-tenancy #słownik
Co to jest?
Namespace to wirtualny klaster wewnątrz klastra Kubernetes. Pozwala na logiczną izolację zasobów - zasoby w różnych namespace'ach nie widzą się nawzajem (domyślnie).
Kluczowe cechy
- Scope zasobów - Pods, Services, ConfigMaps etc. są namespace-scoped
- RBAC - uprawnienia mogą być ograniczone do namespace
- Resource Quotas - limity CPU/memory per namespace
- NetworkPolicy - izolacja sieciowa per namespace
- Brak hierarchii - namespace'y są płaskie (no nesting)
Zasoby namespace-scoped vs cluster-scoped
| Namespace-scoped | Cluster-scoped |
|---|---|
| Pod, Service, Deployment | Node, Namespace |
| ConfigMap, Secret | ClusterRole |
| Role, RoleBinding | ClusterRoleBinding |
| NetworkPolicy | PersistentVolume |
| CRDs Sympozium | StorageClass |
Użycie w Sympozium
Multi-tenancy
Każda SympoziumInstance działa w namespace (domyślnie sympozium-system):
- Zasoby instancji izolowane w namespace
- RBAC per-namespace kontroluje dostęp
- NetworkPolicy per-namespace izoluje sieć
System namespace
sympozium-system - namespace control plane:
- Controller, API Server, Webhook
- NATS JetStream
- Built-in PersonaPacks, SkillPacks, Policies
Efemeryczny RBAC
Namespace-scoped Role + RoleBinding mają ownerReference → AgentRun = auto GC. Cluster-scoped zasoby nie mogą mieć cross-namespace ownerRef.
Powiązane: RBAC | SympoziumInstance | Model bezpieczeństwa Defence-in-Depth