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
-boch-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:
stsh boundary projections -b my-boundaryStarta jobbet
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:
{
"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
latestnä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. clusterIdkrävs i praktiken: utan det avvisas jobbet.--setläser ett värde som kan tolkas som JSON som JSON. En tagg som ser ut som ett tal, till exempel2eller1.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
stsh job logs nightly-import -g my-resource-groupKommandot 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
stsh job get nightly-import -g my-resource-group
stsh job list -g my-resource-groupstatus ä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
stsh job delete nightly-import -g my-resource-groupCLI: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.