48 lines
1.6 KiB
Markdown
48 lines
1.6 KiB
Markdown
# 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]]
|