# 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]]