2.0 KiB
2.0 KiB
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
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