Kubernetes

Kubernetes Jobs ja Cron Jobs

Kubernetes Jobs ja Cron Jobs
Enamik hajutatud süsteemis töötavatest rakendustest nagu Kubernetes töötavad alati nagu veebiserverid või andmebaasid või API-serverid. Kuid on olemas eraldi klass objekte, mis on mõeldud töötama üks kord või ainult ärkama iga natukese aja tagant ja jooksma oma rada. Perioodilised tööd nagu TLS-i sertifikaatide uuendamine selliste agentidega nagu Certbot on klassikaline näide sellistest töödest, mis töötavad traditsioonilistes serverites. Need tehakse Unixi süsteemides utiliidi Cron abil.

Kubernetesel on analoogne viis ühekordsete protsesside käitamiseks Töökohad ja perioodilised protsessid nagu cron töökohti.

Alustame tüüpilisest näitest, mis on töökohad, ja demonstreerime ametliku dokumendi standardnäidet. Selle näite põhjal on Kubernetese kontekstis hõlpsasti mõistetav töö juhtimine hõlpsasti mõistetav.

Jätkamiseks soovitaksin teil kasutada Kubernetesele mõeldud Kataconda mänguväljakut, mis pakub Kubernetese klastrit kastist välja, ilma et peaksite seda käsitsi konfigureerima või riskima katsetega tootmisklastrit.

Kubernetes töökohad

Töökohad on kõrgema taseme Kubernetes'e abstraktsioonid, sarnaselt ReplicaSetsi ja juurutamistega. Kuid erinevalt juurutamise ja ReplicaSetsi hallatavatest kaunadest lõpetavad Jobi teostavad kaunad oma töö ja väljuvad.

Kui määratud arv kaunaid jõuab lõpule, on töö edukalt täidetud. Millised on kriteeriumid, mis määratlevad podi eduka lõpetamise, on see, mida määratleme Jobi YAML-failis. Seejärel kontrollib töö kontrollija, et teatud arv kaunasid on edukalt lõpetatud ja töö on väidetavalt täielik.

Loome töö, mis prindib oma logidesse pi numbreid kuni 2000 kohta, mida me uurime. Looge fail ja helistage sellele minu töö.yaml ja salvestage sinna järgmine sisu;

apiVersion: partii / v1
liik: Töö
metaandmed:
nimi: pi
spetsifikatsioon:
mall:
spetsifikatsioon:
konteinerid:
- nimi: pi
pilt: perl
käsk: ["perl", "-Mbignum = bpi", "-wle", "print bpi (2000)"]
taaskäivitage poliitika: mitte kunagi
piir: 4

Looge töö selle faili abil:

$ kubectl luua -f ./ töökoht.yaml

Märkate, et tööga töötamine võtab aega paar sekundit kuni paar minutit ja kui see on tehtud. Kui proovite kõik kaunad loetleda, kasutades järgmist:

$ kubectl saavad kaunad
NIMI VALMIS STATUS TAASALUSTAB VANUSE
pi-wg6zp 0/1 Lõpetanud 0 50-d

Näete, et pi-ga seotud oleku olek on Valmis ei tööta ega ole lõpetatud.Võite kopeerida kauna nime, et saaksime kontrollida, kas pi on arvutatud 2000 numbrini. Kauna konkreetne nimi võib teie puhul erineda.

$ kubectl logib pi-wg6zp

Huvitav on see, et kaun pole seda teinud Lõpetatud see on endiselt väga aktiivne, lihtsalt selle sees pole ühtegi rakendust. Sarnaselt lihtsalt arvuti sisselülitamisele ja selle mittekasutamisele. Kui kaun oleks lõpetatud, ei oleks me esiteks saanud palke sellest tõmmata.

Töö ja kõigi loodud kaunade puhastamiseks käivitage käsk:

$ kubectl kustutab -f minu-töökohad.yaml

Ametlikes dokumentides saate lisateavet töö spetsifikatsioonide ja spetsifikatsiooni kirjutamise kohta.

Croni töökohad

Croni töökohad sarnanevad Croni utiliidiga Unixis, mis töötab perioodiliselt vastavalt meie soovitud ajakavale. Selle kirjutamise ajal ei ole see Kubernetes ülitugev asi, seega võiksite selle kasutamisel olla ettevaatlik. Ametlike dokumentide tsiteerimiseks:

“Croni töö loob tööobjekti umbes üks kord oma ajakava täitmisaja jooksul. Me ütleme “umbes”, sest teatud olukordades võidakse luua kaks töökohta või töökohta ei pruugi tekkida. Püüame muuta need haruldaseks, kuid ei takista neid täielikult. Seetõttu peaksid töökohad olema idempotent

Termin idempotent tähendab, et üks või kaks korda või mitu korda teostatud Cron Jobil oleks süsteemile sama mõju. Värskenduste otsimist ja seda tüüpi toimingute jälgimist võib pidada idempotentseks. Kuid andmete muutmine või andmebaasi kirjutamine ei kuulu nende hulka.

Kirjutame croni töö, mis kirjutaks „Tere, maailm!”Sõnum oma logides koos ajatempliga, millal see kiri kirjutati. Looge fail nimega my-cronjob.yaml ja kirjuta sellele järgmine sisu:

apiVersion: partii / v1beta1
selline: CronJob
metaandmed:
nimi: my-cronjob
spetsifikatsioon:
ajakava: "* / 1 * * * *"
jobTemplate:
spetsifikatsioon:
mall:
spetsifikatsioon:
konteinerid:
- nimi: tere
pilt: busybox
argumendid:
- / bin / sh
- -c
- kuupäev; kaja Tere Kubernetes klastrist
restartPolicy: OnFailure

Töö ajakavaosa on kõige olulisem. See järgib Croni standardset kokkulepet, seal on tühikutega eraldatud arvude loend. Viis numbrit tähistavad,

  1. Minut (0–59)
  2. Tund (0–23)
  3. Kuu päev (1-31)
  4. Kuu (1–12)
  5. Nädalapäev (0–6) alates pühapäevast

Tärni (*) väli tähendab selle välja mis tahes saadaolevat väärtust (näiteks metamärki) ja meie ajakava esimene kirje “* / 1 * * * *” näitas, et tööd tuleb käivitada iga minut olenemata kellaajast, päevast või kuust aasta. Kasutades * / 5, prinditakse sõnum iga 5 minuti järel.

Cronjob yamli spetsifikatsiooni kohta saate lisateavet ametlikest dokumentidest. Vaatame kõiki tööle asuvaid kaunasid, millele panime nimeks my-cronjob.

$ kubectl saavad kaunad
NIMI VALMIS STATUS TAASALUSTAB VANUSE
my-cronjob-1534457100-hfhzf 0/1 Valmis 0 2m
my-cronjob-1534457160-gk85l 0/1 Valmis 0 1m
my-cronjob-1534457220-bj22x 0/1 Valmis 0 57s

Iga kauna logidesse kaevudes ilmuks üks sõnum ajatempliga, kuna need kõik loodi erinevatel aegadel, on neil kõigil erinevad ajatemplid.

$ kubectl logi my-cronjob-1534457100-hfhzf

Cronjobi kustutamiseks lihtsalt käivitage:

$ kubectl kustutab -f my-cronjob.yaml

See kustutab ka kõik õigel ajal loodud kaunad.

Viited

Kubernetes Jobsi kohta saate lisateavet siit ja Croni töökohtade kohta saate külastada nende hästi struktureeritud dokumentatsiooni jaotist.

Juhtige ja hallake hiire liikumist mitme kuvari vahel Windows 10-s
Dual Display Mouse Manager võimaldab teil kontrollida ja konfigureerida hiire liikumist mitme monitori vahel, aeglustades selle liikumist piiri läheda...
WinMouse võimaldab teil kohandada ja parandada hiirekursori liikumist Windowsi arvutis
Kui soovite oma hiirekursori vaikefunktsioone paremaks muuta, kasutage vabavara WinMouse. See lisab rohkem funktsioone, mis aitavad teil alandlikust h...
Hiire vasakklõps nupp ei tööta Windows 10-s
Kui kasutate oma sülearvuti või lauaarvutiga spetsiaalset hiirt, kuid hiire vasakklõps nupp ei tööta mingil põhjusel operatsioonisüsteemis Windows 10/...