Hoppa till innehållet
Stackship-dokumentation English

JobbAnvändareMaskinöversatt

Kör ett jobb

Starta ett jobb från en containeravbildning med CLI:t stsh, följ dess utdata, kontrollera resultatet och ta bort det.

Kräver: jobs/write, jobs/readLogs

För att köra ett jobb behöver du jobs/write i resursgruppen, och för att läsa dess utdata jobs/readLogs. Rollerna Jobs Operator, Contributor och Owner har båda.

Innan du börjar

  • CLI:t stsh, inloggat — se Logga in med CLI:t.
  • Boundaryn och resursgruppen som jobbet ska köras i. Ange dem med -b och -g, eller utelämna dem för att använda kontextens standardvärden.
  • Id:t för ett kluster som boundaryn är projicerad till. Lista dem med:
bash
stsh boundary projections -b my-boundary

Starta jobbet

bash
stsh job create nightly-import -b my-boundary -g my-resource-group \
  --set image=ghcr.io/example/importer \
  --set tag=1.4.2 \
  --set clusterId=<cluster-id> \
  --set computePlan=small \
  --set 'env={"SOURCE_URL":"https://data.example.com/export.csv"}'

Eller lägg innehållet i en fil och ange --file job.json; --set skriver då över enskilda fält:

json
{
  "image": "ghcr.io/example/importer",
  "tag": "1.4.2",
  "clusterId": "<cluster-id>",
  "computePlan": "small",
  "env": { "SOURCE_URL": "https://data.example.com/export.csv" },
  "activeDeadlineSeconds": 1800,
  "ttlSecondsAfterFinished": 86400
}
  • Namnet blir Kubernetes-jobbets namn: små bokstäver, siffror och bindestreck, som börjar och slutar med en bokstav eller siffra, högst 63 tecken, och inte upptaget av ett annat jobb i resursgruppen.
  • Ange avbildningen utan tagg och taggen separat; taggen är latest när du utelämnar den. Plattformen fogar ihop de två med ett kolon, så en avbildning som anges med sin tagg får två taggar och kan inte hämtas.
  • clusterId krävs i praktiken: utan det avvisas jobbet.
  • --set läser ett värde som kan tolkas som JSON som JSON. En tagg som ser ut som ett tal, till exempel 2 eller 1.4, måste citeras — --set tag='"1.4"' — annars avvisas skapandet.

Kommandot skriver Done. några sekunder efter att plattformen har tagit emot jobbet; det väntar inte på att jobbet blir klart. När plattformen avvisar jobbet — inget kluster, ett kluster som boundaryn inte är projicerad till, ett namn som redan används — är det enda svaret failed to create job; kontrollera de sakerna först.

Följ dess utdata

bash
stsh job logs nightly-import -g my-resource-group

Kommandot strömmar det som containern skriver tills du stoppar det med Ctrl+C. När containern har avslutats tar strömmen slut och CLI:t ansluter igen, så det skriver ut jobbets hela utdata på nytt med några sekunders mellanrum. Innan jobbets podd finns, och efter att den tagits bort, svarar det No pods found for job., upprepat på samma sätt.

Kontrollera resultatet

bash
stsh job get nightly-import -g my-resource-group
stsh job list -g my-resource-group

status är Pending, Running, Succeeded eller Failed; ett jobb som lyckades har också completedAt. Kolumnerna schedule och lastRunUtc i stsh job list förblir tomma; jobb har inget av dem. Statusarna beskrivs i Jobbinställningar.

Kör det igen

Ett jobb körs en gång. För att köra det igen, ta bort det och skapa det på nytt med samma namn, eller skapa ett jobb med ett nytt namn. Ett avslutat jobb håller sitt namn upptaget tills det tas bort eller rensas bort efter sin livslängd.

Ta bort ett jobb

bash
stsh job delete nightly-import -g my-resource-group

CLI:t ber dig bekräfta; -y hoppar över frågan. Jobbet tas bort direkt; Kubernetes stoppar sedan dess podd, om den fortfarande körs, och tar bort podden och dess utdata i bakgrunden. CLI:t rapporterar Deleted även för ett namn som inte har något jobb.