65 lines
2.9 KiB
Markdown
65 lines
2.9 KiB
Markdown
# Sidecar Pattern
|
|
|
|
#kubernetes #patterns #słownik
|
|
|
|
## Co to jest?
|
|
|
|
**Sidecar Pattern** to wzorzec architektoniczny w Kubernetes gdzie **dodatkowy kontener** (sidecar) jest uruchamiany obok głównego kontenera w tym samym [[Pod|podzie]]. Sidecar rozszerza lub uzupełnia funkcjonalność głównego kontenera.
|
|
|
|
## Cechy
|
|
|
|
- Współdzieli **sieć** z głównym kontenerem (localhost)
|
|
- Współdzieli **woluminy** (np. /ipc, /workspace)
|
|
- Ma **własne zasoby** (CPU, memory limits)
|
|
- Ma **własny lifecycle** (może mieć inne healthchecks)
|
|
- **Nie modyfikuje** głównego kontenera
|
|
|
|
## Typowe zastosowania
|
|
|
|
| Sidecar | Rola | Przykład |
|
|
|---------|------|---------|
|
|
| Log collector | Zbiera logi | Fluentd, Filebeat |
|
|
| Proxy | Routing sieciowy | Envoy (Istio), Linkerd |
|
|
| Auth | Autentykacja/autoryzacja | OAuth2 proxy |
|
|
| Monitoring | Metryki | Prometheus exporter |
|
|
| **IPC Bridge** | Komunikacja | Sympozium: fsnotify → NATS |
|
|
| **Skill sidecar** | Narzędzia | Sympozium: kubectl, helm |
|
|
|
|
## Komunikacja main ↔ sidecar
|
|
|
|
| Metoda | Opis | Użycie w Sympozium |
|
|
|--------|------|---------------------|
|
|
| **Shared volume** | Pliki w współdzielonym katalogu | `/ipc/` - JSON request/response |
|
|
| **localhost** | HTTP/gRPC na localhost | Memory server API |
|
|
| **Shared network** | Porty na localhost | MCP bridge |
|
|
|
|
## Użycie w Sympozium
|
|
|
|
Sympozium to **intensywny użytkownik sidecar pattern**. Typowy agent pod:
|
|
|
|
```
|
|
┌─────────────────────────────────────────────┐
|
|
│ Agent Pod │
|
|
│ │
|
|
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
│ │ MAIN: │ │ SIDECAR: │ │ SIDECAR: │ │
|
|
│ │ Agent │ │ IPC │ │ Skill │ │
|
|
│ │ Runner │ │ Bridge │ │ (kubectl)│ │
|
|
│ └──────────┘ └──────────┘ └──────────┘ │
|
|
│ │
|
|
│ ┌──────────┐ ┌──────────┐ │
|
|
│ │ SIDECAR: │ │ SIDECAR: │ │
|
|
│ │ MCP │ │ Sandbox │ │
|
|
│ │ Bridge │ │ (opcj.) │ │
|
|
│ └──────────┘ └──────────┘ │
|
|
└─────────────────────────────────────────────┘
|
|
```
|
|
|
|
Kluczowa innowacja: **skill sidecary mają własny [[RBAC]]**, a agent container nie ma żadnych credentials K8s.
|
|
|
|
Więcej: [[Skill Sidecars i auto-RBAC]] | [[Cykl życia Agent Pod]]
|
|
|
|
---
|
|
|
|
Powiązane: [[Pod]] | [[Skill Sidecars i auto-RBAC]] | [[Przepływ danych i IPC]]
|