Hagnaður:
- Hæfni til að skilja grunnhluti (Pod, Deployment, Service, ConfigMap, Secret, Namespace) og yfirlýsandi heimspeki Kubernetes og framleiða traustar birtingarmyndir fyrir gervigreind
- Geta til að gera farmskrár tilbúnar til framleiðslu og öruggar með auðlindamörkum, heilsufarsskoðunum (rannsóknum), föstum myndmerkjum og þröngum RBAC
- Hæfni til að sannreyna rétt samhengi fyrir framkvæmd og beita þurrhlaupaaga með þurrhlaup/diff
Það er auðvelt að keyra einn gám. En að koma á fót kerfi sem dreifir hundruðum gáma yfir tugi netþjóna, endurræsir sjálfkrafa þegar einn þeirra hrynur, endurtekur það þegar álagið eykst og uppfærir það með núll niður í miðbæ? Það er hljómsveitarstjórn og staðlað tól iðnaðarins er Kubernetes (K8s í stuttu máli) - vettvangurinn sem sjálfkrafa dreifir, mælikvarða og stjórnar gámum yfir þyrping. Kubernetes er öflugt en flókið: allt er skilgreint af löngum, inndráttarnæmum YAML skrám - sem kallast birtingarmyndir. Þetta er þar sem gervigreind gefur ferskt loft; Með réttu samhengi framleiðir það fljótt þessar birtingarmyndir og afkóðar dularfullar villur þeirra.
En í Kubernetes þýðir röng upplýsingaskrá að ekki standist heila þjónustu, skala rangt eða skilja eftir varnarleysi. Það er á þína ábyrgð að skilja og sannreyna hverja birtingarmynd sem gervigreindin framleiðir - sérstaklega áður en kubectl gildir.
Kubernetes kjarnahlutir
Til að endurskoða Kubernetes ættir þú að þekkja helstu hugtökin:
- Pod: Minnsta vinnueining; Það inniheldur eitt eða fleiri ílát. Almennt er Pod ekki notað beint, en foreldrahlutirnir sem stjórna honum eru notaðir.
- Dreifing: Skilgreinir hversu mörg eintök af forriti munu keyra, hvaða mynd það mun nota og hvernig það verður uppfært. Ef Pod hrynur mun hann sjálfkrafa endurskapa hann.
- Þjónusta: Veitir fast netfang og hleðslujafnvægi til belganna; Jafnvel þó að belg komi og fari, breytist aðgangsfangið ekki.
- ConfigMap og Secret: Heldur stillingargildum og leynilegum upplýsingum aðskildum frá pods. ConfigMap er fyrir skýrar stillingar, Secret er fyrir viðkvæm gildi.
- Nafnarými: Svæðið sem skiptir og einangrar auðlindir rökrétt (t.d. dev, prod).
- Ingress: Reglusettið sem beinir HTTP umferð frá umheiminum til þjónustu í klasanum.
Helm er „pakkastjóri“ Kubernetes: það gerir þér kleift að sniðmáta endurteknar birtingarmyndir (töflur) og setja þær upp með mismunandi gildum í mismunandi umhverfi með einni skipun. AI framleiðir bæði hráa upplýsingaskrá og Helm töflu.
Af hverju eru svona margir hlutir? Vegna þess að kjarnaheimspeki Kubernetes er lýsandi: þú skilgreinir "hvernig þú vilt að kerfið líti út á endanum" (t.d. "hafa alltaf 3 eintök af þessu forriti í gangi"), á meðan Kubernetes færir núverandi ástand stöðugt nær því ástandi sem óskað er eftir. Ef Pod deyr, býr það til nýjan; ef hnút lækkar færir það vinnuálagið yfir á annan hnút. Þess vegna eru uppskriftir ekki „gera“ skipanir, heldur „látum það vera svona“ uppskriftir. Að átta sig á þessum greinarmun er mikilvægt þegar lesið er birtingarmyndir sem gervigreind framleiðir: hvert lén lýsir hluta af æskilegri stöðu kerfisins. Rangt lén þýðir að Kubernetes er að vinna að rangu markmiði - og því markmiði er framfylgt þögul og stöðugt.
Ábending: Í Kubernetes er mikilvægasta örugga prófunartækið kubectl apply --dry-run=server -f file.yaml: það sýnir hvort þjónninn mun samþykkja og hvað á að gera án þess að nota upplýsingaskrána í raun. Vertu viss um að keyra dry-run og kubectl diff áður en þú notar manifest á prod.
Skref fyrir skref: Búa til birtingarmyndir með gervigreind
- Lýstu umsókninni og þörfinni. Nafn mynd, gátt, hversu margar eftirlíkingar, auðlindamörk (CPU/minni).
- Biðja um dreifingu + þjónustu. Venjulega þarf hvort tveggja saman.
- Aðskilið stillingar og leyndarmál. Stillingar á ConfigMap, viðkvæm gildi fyrir Secret.
- Bættu við heilsufarsskoðunum. livenessProbe (er það í beinni) og readinessProbe (er það tilbúið fyrir umferð) eru mikilvæg.
- Stilltu auðlindamörk. Án beiðna/takmarka getur Pod neytt allan hnútinn.
- Staðfestu með `--dry-run` og `diff`, notaðu síðan. Fyrst í prófunarnafnrýminu.
Öryggi: Kubernetes sérstakar áhættur
- Leyndarmál er í raun ekki leyndarmál - það er bara base64. Kubernetes Secret hlutargrunnurinn64 kóðar gildi; Þetta er ekki dulkóðun, það er auðvelt að afkóða. Fyrir raunverulegt næði þarf etcd dulkóðun og ytri hvelfingu (Vault, leyndarmálastjóri skýja). Aldrei fremja leyndarmálsskrár beint til Git (það eru til lausnir fyrir þetta eins og lokað leyndarmál/ytri leyndarmál).
- Stilltu auðlindamörk. Pod án takmarkana getur hrunið allan hnútinn með minnisleka.
- Lágmarksvald (RBAC). Með hlutverkatengdri aðgangsstýringu hefur hver þjónusta/notandi aðeins þær heimildir sem hún þarfnast. AI gefur stundum stóran klasa-admin; þrengja þetta.
- Ekki nota „nýjasta“ myndmerkið. Þú veist ekki hvaða útgáfa er í gangi og þú getur ekki snúið henni til baka.
Varúð: kubectl eyða eða röng umsókn getur eyðilagt lifandi dreifingu. Vertu viss um að staðfesta í hvaða nafnrými þú ert (kubectl config current-context) áður en þú keyrir skipanirnar; Slysavinna er algeng hörmung í framleiðslusamhengi.
Raw manifest vs. Helm table
viðmiðun
Hrá YAML upplýsingaskrá
Hjálmarkort
Uppsetning
kubectl gilda -f
setja upp hjálm
Margmiðlun (framleiðandi/framleiðandi)
Copy-paste, villuhættu
Einrit, mismunandi gildi.yaml
Útgáfa/til baka
í höndunum
auðvelt með afturköllun hjálms
Námsferill
lágt
miðlungs
hvenær
Lítið, einstakt umhverfi
Margmiðlun, endurtekin þjónusta
þrjú smámál
Mál 1 — leyndarmál þjónustunnar sem hrundi. Pod var stöðugt að endurræsa (CrashLoopBackOff). Liðið gaf gervigreindinni annála og upplýsingaskrá; Gervigreindin sýndi að Pod var aldrei talinn „tilbúinn“ vegna þess að viðbúnaðarprófið var að horfa á ranga höfn. Þeir laga höfnina, þjónustan varð stöðug á 10 mínútum. Að koma þessu sambandi á handvirkt gæti tekið nokkrar klukkustundir.
Tilfelli 2 — að setja ekki mörk braut hnútinn. Það voru engin takmörk í dreifingu; Minningarleki blés upp í Podnum og hrundi allan hnútinn, og lagði einnig niður nágrannaþjónustu. Eftir atvikið létu þeir gervigreind segja „bæta við hæfilegum örgjörva-/minnibeiðnum og takmörkunum við allar dreifingar“ og gerðu það staðlað. Ein lína sem vantaði kostaði klukkutíma í niðri.
Tilfelli 3 - stór RBAC tekin. Við rannsókn kom í ljós að þjónustureikningsupplýsingaskrá sem mynduð var af gervigreind var bundin við klasastjórnandahlutverkið - sem þýðir að þjónustan gæti stjórnað öllu klasanum. Teymið minnkaði leyfið til að lesa aðeins Pods í nafnrýminu sínu. Meginreglan um minnstu forréttindi lokaði á öryggisveikleika.
Fjögur afritanleg sniðmát
1) Dreifing + þjónustuframleiðsla:
Skrifaðu uppsetningar- og þjónustuskrá fyrir Kubernetes. Umsókn: [AD], mynd: [mynd: föst útgáfa], port: [X], eftirmynd: [N]. Reglur:- Bættu við CPU/minnisbeiðnum og takmörkunum.- Skilgreindu livenessProbe og readinessProbe.- Lestu stillingar frá ConfigMap, leyndarmál frá Secret object; Ekki fella gildi inn í upplýsingaskrá, notaðu staðgengla. - EKKI nota myndamerkið ":nýjasta". Gefðu með lýsingu.
2) Augljós villulausn:
Núverandi Pod er í [CrashLoopBackOff / Pending / ImagePullBackOff] ástandi. Samkvæmt eftirfarandi upplýsingaskrá og 'kubectl describe' úttak, skráðu mögulegar undirstöðuorsakir í röð eftir líkindum og gefðu út sannprófunarskipunina fyrir hverja. Manifest: [YAML] Lýstu: [ÚTTAKA]
3) Öryggis-/heilleikaathugun:
Athugaðu þessa Kubernetes upplýsingaskrá: vantar auðlindamörkin, vantar það prob, er til :nýjasta merki, er of víðtæk RBAC/heimild, er leyndarmálið innbyggt í upplýsingaskrána? Skrifaðu niðurstöðurnar í mikilvægisröð og með leiðréttingu. Manifest: [YAML]
4) Umbreyting í stýrikort:
Umbreyttu eftirfarandi hráu birtingarmyndum í endurnýtanlegt Helm töflu: hvaða gildi ættu að fara út í values.yaml (mynd, eftirmynd, uppspretta, umhverfi)? Sýna myndritabyggingu og sýnishorn gildi.yaml.Manifests: [YAML]
Veik kvaðning / Sterk kvaðning
Veik: "Skrifaðu Kubernetes YAML fyrir umsóknina mína."
Niðurstaða: No-probe, no-limit dreifing með :nýjasta merkinu, fellir inn leyndarmálið; Óörugg og viðkvæm í framleiðslu.
Sterkt: "Skrifaðu Kubernetes Deployment + Service. Image myapp: 1.4.2, 3 eftirlíkingar, 8080 tengi. CPU 100m-500m, minni 128Mi-512Mi bættu við beiðnum/takmörkunum. Settu lífleikarannsakanda fyrir /heilsu, reiðuskynjara fyrir /tilbúinn. Lestu leyndarmálið inn með lýsingunni með lýsingunni."
Mismunur: önnur hvetja útgáfa gefur mælikvarða, auðlindamörk, heilsufarsskoðun og leynireglu; Framleiðslan er nálægt framleiðslu og örugg.
Algeng mistök
- Ekki setja auðlindamörk. Einn Pod getur neytt allan hnútinn.
- Ekki bæta við heilsufarsskoðun (könnun). Kubernetes getur ekki greint hrun/ekki tilbúinn pod.
- `:nýjasta` merkið. Það verður óljóst hvaða útgáfa er í gangi, það er ekki hægt að snúa henni til baka.
- Að framselja leyndarmálið beint til Git. Base64 er ekki dulkóðun; allir leysa það.
- Keyrir skipanir í röngu samhengi/nafnarými. Algengasta leiðin til að hrynja í framleiðslu.
- skipping `--dry-run`/`diff`. Að sjá ekki hvað gerist fyrir framkvæmd.
Í stuttu máli
Kubernetes er öflugur en flókinn hljómsveitarstjóri sem setur sjálfkrafa upp, mælikvarða og fínstillir gáma yfir þyrping; Allt er skilgreint af augljósum YAML, sem Helm sniðmát. Gervigreind framleiðir fljótt dreifingar-/þjónustuskrár og stýritöflur, leysir dularfullar villur – en þú verður að biðja beinlínis um auðlindamörk, heilsufarsskoðun, óbreytanlegt myndmerki, þröngt RBAC og leynilegar öryggisreglur. --þurrhlaup, diff og rétt samhengisathugun eru venjur sem koma í veg fyrir hrun.
Umsóknarverkefni
Láttu gervigreind búa til upplýsingaskrá fyrir sýnishorn af forriti með sniðmátinu „Deployment + Service generation“. Síðan: (1) Láttu athuga það fyrir auðlindamörk, rannsaka, :nýjasta og leyndarmál með "Öryggis-/heilbrigðisathugun" sniðmátinu; (2) keyrðu kubectl apply --dry-run=þjónn á prufuþyrping/minikube ef mögulegt er og lestu úttakið; (3) taktu eftir tveimur mikilvægustu öryggis-/sterkleikahlutunum sem þér finnst vanta.
gátlisti
- [ ] Ég bætti myndútgáfunni, fjölda eftirmynda, höfn og auðlindamörkum við beiðni mína.
- [ ] Ég bætti lífleika og viðbúnaðarrannsókn við upplýsingaskrána.
- [ ] Myndamerki lagað; Ég notaði ekki :nýjasta.
- [ ] Leyndarmál er ekki fellt inn í upplýsingaskrána; Ég notaði Secret object/external vault.
- [ ] Ég minnkaði RBAC/heimildir í lágmarksheimildir.
- [ ] Áður en ég sótti um, staðfesti ég að ég væri í réttu samhengi og að --dry-run/diff úttak.