Kubernetes

Kubernetes Jobs in Cron Jobs

Kubernetes Jobs in Cron Jobs
Večina aplikacij, ki se izvajajo v porazdeljenem sistemu, kot je Kubernetes, so vedno aktivne kot spletni strežniki ali zbirke podatkov ali strežniki API. Obstajajo pa ločeni razredi predmetov, ki naj bi se zagnali enkrat ali pa se le občasno prebudili in zagnali svojo pot. Redna opravila, kot so podaljšanja potrdil TLS z agenti, kot je Certbot, so klasičen primer takšnih opravil, ki se izvajajo na tradicionalnih strežnikih. To se izvede s pomočjo pripomočka Cron v sistemih Unix.

Kubernetes ima analogen način vodenja časovnih procesov Službe in periodični procesi, kot so cron delovna mesta.

Začeli bomo s tipičnim primerom, kaj so Jobs, in prikazali bomo standardni primer iz uradnih dokumentov. Iz tega primera bo enostavno razumeti, kaj to pomeni z uspešnim izvajanjem opravila v kontekstu Kubernetesa.

Če želite nadaljevati, vam priporočam, da uporabite igrišče Kataconda za Kubernetes, ki bo zagotovo zagotovilo gručo Kubernetes, ne da bi jo bilo treba ročno konfigurirati ali tvegati proizvodno gručo za poskuse.

Kubernetes Jobs

Opravila so abstrakcije Kubernetes na višji ravni, podobno kot ReplicaSets in Deployments. Toda za razliko od strokov, ki jih upravljajo razmestitve in ReplicaSets, stroki, ki opravijo opravilo, dokončajo svoje delo in izstopijo.

Ko določeno število strokov doseže dokončanje, naj bi se opravilo uspešno zaključilo. Kateri kriteriji opredeljujejo uspešno zaključitev stroka, bomo določili v datoteki YAML Job's. Nato bo nadzornik opravila zagotovil, da je bilo določeno število pods uspešno zaključenih in da bo opravilo končano.

Ustvarimo delo, ki v svoje dnevnike natisne številke pi do 2000 mest, ki jih bomo preučili. Ustvarite datoteko in jo pokličite moje delo.yaml in vanjo shranite naslednjo vsebino;

apiVersion: batch / v1
vrsta: Job
metapodatki:
ime: pi
specifikacija:
predloga:
specifikacija:
posode:
- ime: pi
slika: perl
ukaz: ["perl", "-Mbignum = bpi", "-wle", "print bpi (2000)"]
restartPolicy: Nikoli
backoffLimit: 4

Ustvarite opravilo s to datoteko:

$ kubectl ustvari -f ./ služba.yaml

Opazili boste, da delo traja nekaj sekund do nekaj minut in ko je končano. Ko poskusite navesti vse stroke z uporabo:

$ kubectl dobite stroke
IME PRIPRAVLJENO STANJE ZAVARUJE STAROST
pi-wg6zp 0/1 Dokončano 0 50s

Videli boste, da je stanje povezanega pi-ja pod Dokončano se ne izvaja ali ukine.Lahko tudi kopirate ime stroja, da lahko preverimo, ali je pi res izračunan na 2000 števk. Določeno ime stroka se lahko v vašem primeru razlikuje.

$ kubectl beleži pi-wg6zp

Zanimivo je, da stroka ni Prenehala še vedno je zelo aktiven, le da v njem ni zagnanih nobenih aplikacij. Podobno kot samo vklopiti računalnik in ga ne uporabljati. Če bi bil strok končan, sploh ne bi mogli potegniti hlodov z njega.

Če želite očistiti opravilo in vse ustvarjene pods, zaženite ukaz:

$ kubectl delete -f my-jobs.yaml

V uradni dokumentaciji lahko izveste več o specifikacijah delovnih mest in o tem, kako napisati specifikacijo.

Cron Jobs

Cron Jobs je podoben pripomočku Cron v Unixu, ki se občasno izvaja po urniku, ki ga želimo. V času pisanja tega dokumenta Kubernetes ni nadstandardna stvar, zato boste morda želeli biti previdni pri uporabi. Če citiram uradne dokumente:

»Opravilo cron ustvari predmet opravila približno enkrat na čas izvedbe svojega urnika. Pravimo "približno", ker obstajajo določene okoliščine, ko bi lahko ustvarili dve zaposlitvi ali nobeno. Te poskušamo narediti redke, vendar jih ne preprečujemo popolnoma. Zato bi morala biti delovna mesta idempotenten"

Izraz idempotent pomeni, da bi opravilo Cron, bodisi enkrat ali dvakrat ali poljubno število časa, imelo enak učinek na sistem. Preverjanje posodobitev in spremljanje tovrstnih operacij se lahko štejejo za nepomembne. Toda spreminjanje podatkov ali zapisovanje v bazo podatkov ni med temi.

Napišemo cron opravilo, ki bi napisalo »Zdravo, svet!”V dnevnikih skupaj s časovnim žigom, kdaj je bilo to sporočilo napisano. Ustvari datoteko z imenom my-cronjob.yaml in vanj napišite naslednjo vsebino:

apiVersion: batch / v1beta1
vrsta: CronJob
metapodatki:
ime: my-cronjob
specifikacija:
urnik: "* / 1 * * * *"
jobTemplate:
specifikacija:
predloga:
specifikacija:
posode:
- ime: zdravo
slika: busybox
argumenti:
- / bin / sh
- -c
- datum; echo Hello iz gruče Kubernetes
restartPolicy: OnFailure

Urnik dela je najpomembnejši. Sledi običajni konvenciji Cron, seznam števil je ločen s presledki. Pet številk predstavlja,

  1. Minuta (0-59)
  2. Ura (0-23)
  3. Dan v mesecu (1-31)
  4. Mesec (1–12)
  5. Dan v tednu (0-6) od nedelje

Uporaba zvezdice (*) za polje pomeni katero koli razpoložljivo vrednost tega polja (na primer nadomestni znak) in prvi vnos v našem urniku »* / 1 * * * *« je označeval, da je treba delo izvajati vsako minuto, ne glede na uro, dan ali mesec leto. Če uporabite * / 5, se sporočilo natisne vsakih 5 minut.

Več o specifikaciji cronjob yaml lahko izveste v uradnih dokumentih. Oglejmo si vse stroje, ki tečejo za to nalogo, ki smo jo poimenovali my-cronjob.

$ kubectl dobite stroke
IME PRIPRAVLJENO STANJE ZAVARUJE STAROST
my-cronjob-1534457100-hfhzf 0/1 Dokončano 0 2m
my-cronjob-1534457160-gk85l 0/1 Dokončano 0 1m
my-cronjob-1534457220-bj22x 0/1 Dokončano 0 57s

Kopanje v dnevnike vsakega stroka bi razkrilo eno sporočilo s časovnim žigom, saj so bili vsi ustvarjeni ob različnem času, vsi bodo imeli različne časovne žige.

$ kubectl log my-cronjob-1534457100-hfhzf

Če želite izbrisati cronjob, preprosto zaženite:

$ kubectl delete -f my-cronjob.yaml

S tem bodo izbrisani tudi vsi stroki, ki so bili ustvarjeni v ustreznem postopku.

Reference

Tu lahko izveste več o Kubernetes Jobs, za Cron pa v tem oddelku njihove dobro strukturirane dokumentacije.

Zaslonska sledilna ploščica in kazalec miške AppyMouse za tablične računalnike Windows
Uporabniki tabličnih računalnikov pogosto zgrešijo miškin kazalec, še posebej kadar običajno uporabljajo prenosne računalnike. Pametni telefoni in tab...
Srednji gumb miške ne deluje v sistemu Windows 10
The srednji gumb miške vam pomaga, da se pomikate po dolgih spletnih straneh in zaslonih z veliko podatkov. Če se to ustavi, boste na koncu uporabili ...
Kako spremeniti levi in ​​desni gumb miške na računalniku z operacijskim sistemom Windows 10
Povsem normalno je, da so vse naprave računalniške miške ergonomsko zasnovane za desničarje. Na voljo pa so miške, ki so posebej zasnovane za levičarj...