Unità 5 / 11

Kubernetes: Manifest, Tmun u Orkestrazzjoni mħaddma bl-AI

Qligħ:

  • Kapaċità li tifhem l-oġġetti bażiċi (Pod, Deployment, Service, ConfigMap, Secret, Namespace) u l-filosofija dikjarattiva ta’ Kubernetes u tipproduċi manifesti solidi għall-intelliġenza artifiċjali
  • Kapaċità li tagħmel manifesti lesti għall-produzzjoni u siguri b'limiti ta' riżorsi, kontrolli tas-saħħa (sondi), tikketti tal-immaġni fissi u RBAC dejjaq
  • Kapaċità li tivverifika kuntest korrett qabel l-eżekuzzjoni u tapplika dixxiplina dry-run ma dry-run/diff

Huwa faċli li tmexxi kontenitur wieħed. Imma l-istabbiliment ta’ sistema li tifrex mijiet ta’ kontenituri fuq għexieren ta’ servers, terġa’ tibda awtomatikament meta wieħed minnhom jiġġarraf, tirreplikaha meta t-tagħbija tiżdied, u taġġornaha b’ħin ta’ waqfien żero? Dik hija l-orkestrazzjoni, u l-għodda standard tal-industrija hija Kubernetes (K8s fil-qosor) — il-pjattaforma li awtomatikament tiskjera, tiskala, u tmexxi kontenituri madwar cluster. Kubernetes huwa qawwi iżda kumpless: kollox huwa definit minn fajls YAML twal u sensittivi għall-indentazzjoni — imsejħa manifesti. Dan huwa fejn l-AI tagħti nifs ta 'arja friska; Bil-kuntest it-tajjeb, malajr jipproduċi dawn il-manifesti u jiddekowdja l-iżbalji misterjużi tagħhom.

Iżda f'Kubernetes, manifest żbaljat ifisser li jonqos milli jqum servizz sħiħ, li tiskala ħażin, jew li tħalli vulnerabbiltà. Hija r-responsabbiltà tiegħek li tifhem u tivverifika kull manifest li tipproduċi l-AI — speċjalment qabel ma tapplika kubectl.

Oġġetti ewlenin tal-Kubernetes

Biex tivverifika Kubernetes, għandek tkun taf il-kunċetti ewlenin:

  • Pod: L-iżgħar unità tax-xogħol; Fih kontenitur wieħed jew diversi. Ġeneralment, il-Pod ma jintużax direttament, iżda jintużaw l-oġġetti parent li jimmaniġġjawh.
  • Skjerament: Jiddefinixxi kemm se taħdem kopji ta' applikazzjoni, liema immaġni se tuża, u kif se tiġi aġġornata. Jekk Pod jiġġarraf awtomatikament jirrikreah.
  • Servizz: Jipprovdi indirizz tan-netwerk fiss u l-ibbilanċjar tat-tagħbija lill-imżiewed; Anki jekk imżiewed jiġu u jmorru, l-indirizz ta 'aċċess ma jinbidel.
  • ConfigMap u Sigriet: Iżomm il-valuri tal-konfigurazzjoni u l-informazzjoni sigrieta separati mill-Pods. ConfigMap huwa għal settings espliċiti, Secret huwa għal valuri sensittivi.
  • Ispazju tal-isem: Iż-żona li loġikament taqsam u tiżola r-riżorsi (eż. dev, prod).
  • Dħul: Is-sett ta 'regoli li jidderieġi t-traffiku HTTP mid-dinja ta' barra għas-servizzi fil-cluster.

Helm huwa l-"maniġer tal-pakkett" ta 'Kubernetes: jippermettilek timmudella manifesti rikorrenti (mapep) u tinstallahom b'valuri differenti f'ambjenti differenti bi kmand wieħed. AI tipproduċi kemm manifest mhux ipproċessat kif ukoll tabella Helm.

Għaliex hemm daqstant oġġetti? Minħabba li l-filosofija ewlenija ta 'Kubernetes hija dikjarattiva: inti tiddefinixxi "kif trid li s-sistema fl-aħħar tidher" (eż. "dejjem għandek 3 kopji ta' din l-applikazzjoni għaddejjin"), filwaqt li Kubernetes kontinwament iċċaqlaq l-istat attwali eqreb lejn dak l-istat mixtieq. Jekk Pod imut, joħloq wieħed ġdid; jekk node jinżel, iċċaqlaq il-piż tax-xogħol għal nodu ieħor. Huwa għalhekk li l-manifesti mhumiex kmandi "do", iżda "ħalli jkun bħal dan" riċetti. Li taqbad din id-distinzjoni hija kritika meta taqra l-manifesti li tipproduċi l-AI: kull dominju jiddeskrivi parti mill-istat mixtieq tas-sistema. Dominju ħażin ifisser li Kubernetes qed jaħdem lejn għan ħażin - u dak l-għan huwa infurzat fis-skiet u b'mod persistenti.

Tip: F'Kubernetes, l-aktar għodda ta' ttestjar sikura importanti hija kubectl apply --dry-run=server -f file.yaml: turi jekk is-server jaċċettax u x'għandek tagħmel mingħajr ma fil-fatt tapplika l-manifest. Kun żgur li taħdem dry-run u kubectl diff qabel ma tapplika manifest għal prod.

Pass pass: Il-ħolqien ta' manifesti bl-AI

  1. Iddeskrivi l-applikazzjoni u l-ħtieġa. Isem tal-immaġni, port, kemm repliki, limiti tar-riżorsi (CPU/memorja).
  2. Talba Skjerament + Servizz. Normalment it-tnejn huma meħtieġa flimkien.
  3. Konfigurazzjoni separata u sigrieta. Settings għal ConfigMap, valuri sensittivi għal Secret.
  4. Żid kontrolli tas-saħħa. livenessProbe (huwa ħaj) u readinessProbe (huwa lest għat-traffiku) huma kritiċi.
  5. Issettja limitu tar-riżorsi. Mingħajr talbiet/limiti Pod jista’ jikkunsma n-nodu kollu.
  6. Ivverifika b'"--dry-run" u "diff", imbagħad applika. L-ewwel fl-ispazju tal-isem tat-test.

Sigurtà: Riskji speċifiċi għal Kubernetes

  1. Is-sigriet mhuwiex verament sigriet — huwa biss base64. L-oġġett Sigriet Kubernetes base64 jikkodifika l-valuri; Dan mhuwiex encryption, huwa faċilment decrypted. Għal privatezza vera, encryption etcd u kaxxa-forti esterna (Vault, maniġer sigriet tas-sħab) huma meħtieġa. Qatt tikkommetti manifesti sigrieti direttament lil Git (hemm soluzzjonijiet għal dan bħal Sigrieti Issiġillati/Sigrieti Esterni).
  2. Issettja limitu tar-riżorsi. Pod mingħajr limiti jista 'jiġġarraf in-nodu kollu bi tnixxija tal-memorja.
  3. Awtorità minima (RBAC). Bil-Kontroll tal-Aċċess Ibbażat fuq Rwol, kull servizz/utent għandu biss il-permessi li jeħtieġ. AI kultant tagħti cluster-admin kbir; dejjaq dan.
  4. Tużax it-tikketta tal-immaġini 'l-aħħar'. Ma tafx liema verżjoni qed taħdem u ma tistax tirrumblaha lura.
Attenzjoni: kubectl ħassar jew applikazzjoni skorretta tista' teqred Skjerament ħaj. Kun żgur li tivverifika f'liema spazju tal-isem qiegħed (kubectl config current-context) qabel ma tmexxi l-kmandi; Ix-xogħol aċċidentali huwa diżastru komuni fil-kuntest tal-produzzjoni.

Manifest mhux maħdum vs tabella Helm

kriterju

Manifest YAML mhux ipproċessat

Tabella tat-Tmun

Installazzjoni

kubectl japplikaw -f

tmun tinstalla

Multimedja (dev/prod)

Ikkopja-pejst, suxxettibbli għall-iżbalji

Ċart waħda, valuri differenti.yaml

Verżjoni/rollback

bl-idejn

faċli b'rollback tat-tmun

Kurva tat-tagħlim

baxx

medju

meta

Żgħar, ambjent wieħed

Multi-media, servizz ripetittiv

tliet każijiet żgħar

Każ 1 — is-sigriet tas-servizz iġġarraf. Pod kien qed jerġa' jibda b'mod kostanti (CrashLoopBackOff). It-tim ta r-zkuk u l-manifest lill-AI; L-AI wriet li l-Pod qatt ma kien ikkunsidrat bħala "lest" minħabba li l-reainessProbe kien qed iħares lejn il-port ħażin. Irranġaw il-port, is-servizz sar stabbli f'10 minuti. L-istabbiliment ta 'din ir-relazzjoni manwalment jista' jieħu sigħat.

Każ 2 — ma ffissatx limiti kissru l-għoqda. Ma kien hemm l-ebda limiti fi Skjerament; Tnixxija ta 'memorja minfuħ il-Pod u ġġarraf in-nodu kollu, u waqqa' s-servizzi ġirien ukoll. Wara l-inċident, għamlu AI jgħidu "żid talbiet u limiti raġonevoli ta 'CPU/memorja għall-Iskjeramenti kollha" u għamluha standard. Linja waħda nieqsa tiswa sigħat ta' waqfien.

Każ 3 — RBAC kbir maqbud. Waqt investigazzjoni, manifest ServiceAccount iġġenerat minn AI instab li kien marbut mar-rwol ta 'cluster-admin — li ​​jfisser li s-servizz jista' jimmaniġġja l-cluster kollu. It-tim naqas il-permess biex jaqra biss Pods fl-ispazju tal-isem tagħhom. Il-prinċipju tal-inqas privileġġ għalaq vulnerabbiltà tas-sigurtà.

Erba' mudelli li jistgħu jiġu kkupjati

1) Skjerament + Produzzjoni tas-servizz:

Ikteb manifest ta' Deployment and Service għal Kubernetes. Applikazzjoni: [AD], immaġni: [immaġni: verżjoni fissa], port: [X], replika: [N]. Regoli:- Żid talbiet u limiti ta 'CPU/memorja.- Iddefinixxi livenessProbe u readinessProbe.- Aqra l-konfigurazzjoni minn ConfigMap, sigriet minn oġġett Sigriet; Tdaħħalx valuri fil-manifest, uża placeholders. - TUŻAX tikketta tal-immaġni ":latest". Agħti b'deskrizzjoni.

2) Soluzzjoni ta' żbalji manifesti:

Il-Pod attwali jinsab fl-istat [CrashLoopBackOff / Pending / ImagePullBackOff]. Skont il-manifest li ġej u l-output 'kubectl describe', elenka l-kawżi ewlenin possibbli f'ordni ta' probabbiltà u ħarġet il-kmand tal-verifika għal kull wieħed. Manifest: [YAML] Iddeskrivi: [OUTPUT]

3) Kontroll tas-sigurtà/integrità:

Iċċekkja dan il-manifest Kubernetes: il-limitu tar-riżorsi huwa nieqes, huwa nieqes prob, hemm tikketta :latest, hemm RBAC/permess wiesa 'żżejjed, is-sigriet huwa inkorporat fil-manifest? Ikteb is-sejbiet f'ordni ta' importanza u b'korrezzjoni. Manifest: [YAML]

4) Konverżjoni għal tabella Helm:

Ikkonverti l-manifesti mhux ipproċessati li ġejjin f'tabella Helm li tista 'terġa' tintuża: liema valuri għandhom joħorġu għal values.yaml (immaġni, replika, sors, ambjent)? Uri l-istruttura taċ-ċart u l-valuri tal-kampjun.yaml.Manifests: [YAML]

Pront dgħajjef / Pront qawwi

Dgħajjef: "Ikteb Kubernetes YAML għall-applikazzjoni tiegħi."

Riżultat: Skjerament bla sonda, bla limitu b' :latest tag, inkorporat il-pjanura sigrieta; Mhux sigur u fraġli fil-prod.

Qawwija: "Ikteb Kubernetes Deployment + Service. Image myapp: 1.4.2, 3 repliki, 8080 ports. CPU 100m-500m, memorja 128Mi-512Mi żid talbiet/limiti. Poġġi sonda ta 'ħajja għal /healthz, sonda ta' prontezza għal / lest. Aqra s-Sigriet mill-oġġett sigriet.

Differenza: it-tieni verżjoni fil-pront tagħti skala, limiti tar-riżorsi, kontrolli tas-saħħa u regola sigrieta; L-output huwa qrib il-produzzjoni u sikur.

Żbalji komuni

  • Mhux iffissar limiti tar-riżorsi. Pod wieħed jista 'jikkonsma n-node kollu.
  • Mhux iżżid kontroll tas-saħħa (sonda). Kubernetes ma jistax jiskopri Pod iġġarraf/mhux lest.
  • `:latest` tag. Ma jsirx ċar liema verżjoni qed taħdem, ma tistax tiġi rtirata lura.
  • Li tikkommetti s-sigriet direttament lil Git. Base64 mhix encryption; kulħadd issolviha.
  • Tmexxi kmandi f'kuntest/namespace ħażin. L-aktar mod komuni biex tiġġarraf fi prod.
  • taqbeż `--dry-run`/`diff`. Mhux qed naraw x'se jiġri qabel l-implimentazzjoni.

Fil-qosor

Kubernetes huwa orkestratur b'saħħtu iżda kumpless li awtomatikament juża, jiskala u jottimizza l-kontenituri madwar cluster; Kollox huwa definit minn YAMLs manifest, li Helm templatizes. L-AI malajr tipproduċi manifesti ta' Deployment/Service u Helm charts, issolvi bugs misterjużi — imma trid titlob b'mod espliċitu għal limitu tar-riżorsi, kontroll tas-saħħa, tikketta tal-immaġni immutabbli, RBAC dejqa u regoli ta' sigurtà sigrieti. --dry-run, diff u kontroll tal-kuntest korrett huma drawwiet li jipprevjenu ħabtiet prod.

Kompitu ta' applikazzjoni

Ħalli l-AI tiġġenera manifest għal kampjun ta' applikazzjoni bil-mudell "Deployment + Service generation". Imbagħad: (1) Iċċekkjaha għal-limitu tar-riżorsi, sonda, :l-aħħar, u sigriet bil-mudell "Verifika tas-Sigurtà/sanità"; (2) mexxi kubectl applika --dry-run=server fuq cluster/minikube tat-test jekk possibbli u aqra l-output; (3) innota ż-żewġ oġġetti l-aktar kritiċi ta 'sigurtà/robustezza li ssib nieqsa.

lista ta' kontroll

  • [ ] Żidt il-verżjoni tal-immaġni, in-numru ta' repliki, il-limiti tal-port u tar-riżorsi mat-talba tiegħi.
  • [ ] Żidt il-ħajja u s-sonda ta' prontezza mal-manifest.
  • [ ] Tikketta tal-immaġni ffissata; Ma użajtx :latest.
  • [ ] Is-sigriet mhuwiex inkorporat fil-manifest; Jien użajt oġġett Sigriet/kaxxa-forti esterna.
  • [ ] Naqqas RBAC/permessi għal permessi minimi.
  • [ ] Qabel ma applika, vverifikajt li kont fil-kuntest korrett u li --dry-run/diff outputs.