Files
obsidian-sympozium/08-Słownik-K8s/Job.md
2026-03-25 00:05:57 +01:00

72 lines
2.0 KiB
Markdown

# Job (Kubernetes)
#kubernetes #workload #słownik
## Co to jest?
**Job** to zasób Kubernetes tworzący **pod który wykonuje zadanie i kończy się**. W odróżnieniu od [[Deployment]] (pody działają ciągle), Job tworzy pod który ma zakończyć się sukcesem.
## Zachowanie
```
Job created → Pod created → Pod runs → Pod completes (exit code 0) → Job Succeeded
→ Pod fails (exit code != 0) → Job retries or Failed
```
## Kluczowe cechy
| Cecha | Opis |
|-------|------|
| **Run-to-completion** | Pod kończy się po wykonaniu zadania |
| **Retry policy** | Konfigurowalny `backoffLimit` (ile razy retry) |
| **Parallelism** | Wiele podów jednocześnie (`parallelism`) |
| **TTL cleanup** | Automatyczne usuwanie po N sekundach |
| **Completions** | Ile podów musi zakończyć się sukcesem |
## Przykład
```yaml
apiVersion: batch/v1
kind: Job
metadata:
name: agent-run-001
spec:
backoffLimit: 0 # Bez retries
ttlSecondsAfterFinished: 300 # Usuń po 5 minutach
template:
spec:
restartPolicy: Never
containers:
- name: agent
image: agent-runner:v1
```
## Job vs inne workloady
| Workload | Lifecycle | Restart | Use case |
|----------|-----------|---------|----------|
| **Job** | Run-to-completion | Never/OnFailure | Batch, one-shot |
| [[Deployment]] | Long-running | Always | Web services |
| CronJob | Periodic Job | Never/OnFailure | Scheduled batch |
| [[DaemonSet]] | One per node | Always | Node agents |
| [[StatefulSet]] | Ordered, stable | Always | Databases |
## Użycie w Sympozium
**AgentRun w trybie task = Kubernetes Job:**
Każde wywołanie agenta tworzy Job z:
- Agent container (LLM loop)
- IPC Bridge sidecar
- Skill sidecars
- `backoffLimit: 0` (brak retry - lepsze logowanie błędów)
- `restartPolicy: Never`
Po zakończeniu controller zbiera logi, wynik i token usage ze statusu poda.
Więcej: [[Model efemerycznych agentów]] | [[Cykl życia AgentRun]]
---
Powiązane: [[Deployment]] | [[Model efemerycznych agentów]] | [[Pod]]