Awọn anfani:
- Agbara lati loye awọn nkan ipilẹ (Pod, Imuṣiṣẹ, Iṣẹ, ConfigMap, Aṣiri, Orukọ Orukọ) ati imọ-jinlẹ asọye ti Kubernetes ati gbejade awọn ifihan to lagbara fun oye atọwọda
- Agbara lati ṣe awọn ifihan ti o ṣetan fun iṣelọpọ ati aabo pẹlu awọn opin orisun, awọn sọwedowo ilera (awọn iwadii), awọn ami aworan ti o wa titi ati RBAC dín
- Agbara lati ṣayẹwo ipo ti o pe ṣaaju ipaniyan ati lo ibawi-ṣiṣe-gbẹ pẹlu ṣiṣe-gbigbẹ / iyatọ
O rọrun lati ṣiṣe apoti kan. Ṣugbọn idasile eto kan ti o tan awọn ọgọọgọrun awọn apoti kọja awọn dosinni ti awọn olupin, tun bẹrẹ laifọwọyi nigbati ọkan ninu wọn ba kọlu, ṣe atunṣe nigbati ẹru naa ba pọ si, ti o si ṣe imudojuiwọn pẹlu akoko isinmi odo? Iyẹn jẹ orchestration, ati ohun elo boṣewa ile-iṣẹ jẹ Kubernetes (K8s fun kukuru) - pẹpẹ ti o gbejade laifọwọyi, awọn iwọn, ati ṣakoso awọn apoti kọja iṣupọ kan. Kubernetes lagbara ṣugbọn idiju: ohun gbogbo ni asọye nipasẹ gigun, awọn faili YAML ti o ni ifarabalẹ - ti a pe ni awọn ifihan. Eyi ni ibiti AI yoo fun ẹmi ti afẹfẹ titun; Pẹlu ipo ti o tọ, o yarayara gbejade awọn ifihan wọnyi ati pinnu awọn aṣiṣe aramada wọn.
Ṣugbọn ni Kubernetes, ifihan aṣiṣe tumọ si aise lati duro gbogbo iṣẹ kan, iwọn ti ko tọ, tabi fifi ailagbara silẹ. O jẹ ojuṣe rẹ lati ni oye ati rii daju iṣafihan kọọkan ti awọn iṣelọpọ AI - ni pataki ṣaaju ki kubectl lo.
Kubernetes mojuto ohun
Lati ṣayẹwo Kubernetes, o yẹ ki o mọ awọn imọran akọkọ:
- Pod: Ẹka iṣẹ ti o kere julọ; O ni ọkan tabi pupọ awọn apoti. Ni gbogbogbo, Pod ko lo taara, ṣugbọn awọn nkan obi ti o ṣakoso rẹ ni a lo.
- Gbigbe: Ṣe alaye iye awọn ẹda ti ohun elo kan yoo ṣiṣẹ, aworan wo ni yoo lo, ati bii yoo ṣe imudojuiwọn. Ti Pod kan ba kọlu yoo ṣe atunṣe laifọwọyi.
- Iṣẹ: Pese adirẹsi nẹtiwọki ti o wa titi ati iwọntunwọnsi fifuye si awọn adarọ-ese; Paapaa botilẹjẹpe awọn adarọ-ese wa ati lọ, adirẹsi iwọle ko yipada.
- ConfigMap ati Aṣiri: Ṣetọju awọn iye atunto ati alaye aṣiri lọtọ si Pods. ConfigMap wa fun awọn eto titọ, Aṣiri wa fun awọn iye ifura.
- Aaye orukọ: Agbegbe ti o pin ni ọgbọn ati awọn orisun sọtọ (fun apẹẹrẹ dev, prod).
- Ilọsi: Eto ofin ti o ṣe itọsọna ijabọ HTTP lati ita ita si awọn iṣẹ inu iṣupọ.
Helm jẹ “oluṣakoso idii” ti Kubernetes: o fun ọ laaye lati ṣe awoṣe awọn ifihan loorekoore (awọn shatti) ati fi wọn sii pẹlu awọn iye oriṣiriṣi ni awọn agbegbe oriṣiriṣi pẹlu aṣẹ kan. AI ṣe agbejade mejeeji ifihan aise ati iwe aworan Helm.
Kini idi ti awọn nkan ṣe lọpọlọpọ? Nitori imoye ipilẹ ti Kubernetes jẹ asọye: o ṣalaye “bii o ṣe fẹ ki eto naa wo nikẹhin” (fun apẹẹrẹ “nigbagbogbo ni awọn ẹda 3 ti ohun elo yii nṣiṣẹ”), lakoko ti Kubernetes nigbagbogbo n gbe ipo lọwọlọwọ sunmọ si ipo ti o fẹ. Ti Podu kan ba ku, o ṣẹda tuntun; ti ipade kan ba lọ silẹ, o gbe fifuye iṣẹ lọ si ipade miiran. Ti o ni idi ti awọn ifihan gbangba kii ṣe awọn aṣẹ “ṣe”, ṣugbọn “jẹ ki o dabi eyi” awọn ilana. Gbigba iyatọ yii jẹ pataki nigbati o ba ka awọn ifihan ti AI ṣe: agbegbe kọọkan n ṣe apejuwe apakan ti ipo ti o fẹ ti eto naa. Agbegbe ti ko tọ tumọ si pe Kubernetes n ṣiṣẹ si ibi-afẹde ti ko tọ - ati pe ibi-afẹde yẹn jẹ idakẹjẹ, ti fi agbara mu ni imurasilẹ.
Imọran: Ni Kubernetes, ohun elo idanwo ailewu to ṣe pataki julọ ni kubectl apply --dry-run=server -f file.yaml: o fihan boya olupin naa yoo gba ati kini lati ṣe laisi lilo iṣafihan gangan. Rii daju lati ṣiṣẹ gbẹ-ṣiṣe ati kubectl diff ṣaaju lilo ifihan kan si prod.
Igbesẹ nipasẹ igbese: Ṣiṣẹda awọn ifihan pẹlu AI
- Ṣe apejuwe ohun elo ati iwulo. Orukọ aworan, ibudo, awọn ẹda meloo, awọn opin orisun (CPU/iranti).
- Ibere imuṣiṣẹ + Iṣẹ. Nigbagbogbo awọn mejeeji nilo papọ.
- Lọtọ konfigi ati asiri. Awọn eto si ConfigMap, awọn iye ifura si Aṣiri.
- Fi awọn sọwedowo ilera kun. livenessProbe (jẹ o gbe) ati readinessProbe (jẹ o ṣetan fun ijabọ) jẹ pataki.
- Ṣeto opin awọn orisun. Laisi awọn ibeere / awọn opin Pod le jẹ gbogbo ipade naa.
- Daju pẹlu `--gbẹ-run` ati `diff`, lẹhinna lo. Ni akọkọ ni aaye orukọ idanwo.
Aabo: Kubernetes-pato ewu
- Asiri kii ṣe aṣiri gaan — o kan base64. The Kubernetes Secret ohun base64 encodes iye; Eyi kii ṣe fifi ẹnọ kọ nkan, o jẹ ni rọọrun decrypted. Fun aṣiri otitọ, fifi ẹnọ kọ nkan bẹbẹ lọ ati ifinkan ita (Vault, oluṣakoso aṣiri awọsanma) nilo. Maṣe ṣe afihan aṣiri taara si Git (awọn ojutu wa fun eyi gẹgẹbi Awọn Aṣiri Ti a Tidi / Awọn Aṣiri Ita).
- Ṣeto opin awọn orisun. Pod laisi awọn opin le jamba gbogbo oju ipade pẹlu jijo iranti kan.
- Aṣẹ ti o kere julọ (RBAC). Pẹlu Iṣakoso Wiwọle orisun-Ipa, iṣẹ kọọkan/olumulo nikan ni awọn igbanilaaye ti o nilo. AI nigba miiran yoo fun iṣupọ-admin nla; dín yi si isalẹ.
- Maṣe lo aami aworan 'titun'. O ko mọ iru ẹya ti nṣiṣẹ ati pe o ko le yi pada.
Išọra: kubectl paarẹ tabi ohun elo ti ko tọ le pa imuṣiṣẹ laaye laaye. Rii daju lati ṣayẹwo iru orukọ orukọ ti o wa ninu (kubectl config current-context) ṣaaju ṣiṣe awọn aṣẹ; Iṣẹ ijamba jẹ ajalu ti o wọpọ ni ipo iṣelọpọ.
Aise farahan vs Helm tabili
àwárí mu
Aise YAML farahan
Helm aworan atọka
Fifi sori ẹrọ
kubectl waye -f
Helm fi sori ẹrọ
Multimedia (dev/prod)
Daakọ-lẹẹmọ, asise prone
Àwòrán ẹyọkan, iye tó yàtọ̀.yaml
Ẹya / yiyi pada
nipa ọwọ
rọrun pẹlu Helm rollback
Eko eko
kekere
alabọde
nigbawo
Kekere, agbegbe ẹyọkan
Olona-media, iṣẹ atunwi
mẹta mini igba
Ọran 1 - asiri iṣẹ ti o kọlu. Pod kan n ṣe atunbere nigbagbogbo (CrashLoopBackOff). Ẹgbẹ naa fun awọn akọọlẹ ati farahan si AI; AI fihan pe Pod ko ni imọran rara “ṣetan” nitori imurasilẹProbe n wo ibudo ti ko tọ. Wọn ṣe atunṣe ibudo, iṣẹ naa di iduroṣinṣin ni iṣẹju mẹwa 10. Idasile ibasepọ yii pẹlu ọwọ le gba awọn wakati.
Ọran 2 - ko ṣeto awọn opin bu sorapo naa. Nibẹ wà ko si ifilelẹ lọ ni a imuṣiṣẹ; Iṣiṣi iranti kan gbin Pod naa o si kọlu gbogbo ipade naa, ti o mu awọn iṣẹ agbegbe wa silẹ daradara. Lẹhin iṣẹlẹ naa, wọn jẹ ki AI sọ “ṣafikun awọn ibeere Sipiyu / iranti ati awọn opin si gbogbo Awọn imuṣiṣẹ” ati jẹ ki o jẹ boṣewa. Ọkan sonu ila iye owo wakati ti downtime.
Ọran 3 - nla RBAC sile. Lakoko iwadii kan, iṣafihan AccountAccount ti ipilẹṣẹ nipasẹ AI ni a rii pe o so mọ ipa-akoso iṣupọ - afipamo pe iṣẹ le ṣakoso gbogbo iṣupọ naa. Ẹgbẹ naa dín igbanilaaye lati ka awọn Pods nikan ni aaye orukọ wọn. Ilana ti anfani ti o kere ju ni pipade ailagbara aabo kan.
Mẹrin daakọ awọn awoṣe
1) Gbigbe + Iṣẹ iṣelọpọ:
Kọ imuṣiṣẹ ati ifihan iṣẹ fun Kubernetes. Ohun elo: [AD], aworan: [aworan: ti ikede ti o wa titi], ibudo: [X], ẹda: [N]. Awọn ofin: - Ṣafikun awọn ibeere Sipiyu / iranti ati awọn opin.- Ṣetumọ igbesi ayeProbe ati imurasilẹProbe.- Ka iṣeto ni lati ConfigMap, aṣiri lati nkan Aṣiri; Maṣe fi awọn iye sinu ifihan gbangba, lo awọn oniduro. - MAA ṢE lo aami aworan ": titun". Fun pẹlu apejuwe.
2) Ṣe afihan ipinnu aṣiṣe:
Pod lọwọlọwọ wa ni ipo [CrashLoopBackOff / ni isunmọtosi / ImagePullBackOff]. Gẹgẹbi iṣafihan atẹle ati abajade 'kubectl ṣe apejuwe', ṣe atokọ awọn idi root ti o ṣee ṣe ni aṣẹ iṣeeṣe ki o fun aṣẹ ijẹrisi fun ọkọọkan. Afihan: [YAML] Apejuwe: [OUTPUT]
3) Aabo/ayẹwo iduroṣinṣin:
Ṣayẹwo Kubernetes farahan: jẹ opin awọn oluşewadi ti nsọnu, ṣe o padanu prob, jẹ nibẹ : tag tuntun, jẹ RBAC/igbanilaaye ti o gbooro pupọju, jẹ aṣiri ti o fi sii ninu ifihan? Kọ awọn awari ni ọna ti o ṣe pataki ati pẹlu atunṣe. Afihan: [YAML]
4) Iyipada si aworan apẹrẹ Helm:
Yipada awọn aise ti o tẹle wọnyi sinu iwe aworan Helm atunlo: awọn iye wo ni o yẹ ki o jade lọ si values.yaml (aworan, ajọra, orisun, agbegbe)? Ṣe afihan eto apẹrẹ ati awọn iye ayẹwo.yaml.Manifests: [YAML]
Ailagbara kiakia / Alagbara kiakia
Ailagbara: "Kọ Kubernetes YAML fun ohun elo mi."
Esi: a ko si-iwadi, ko si-ipin Ifijiṣẹ pẹlu: titun tag, ifibọ awọn ìkọkọ itele; Ailewu ati ẹlẹgẹ ni prod.
Alagbara: "Kọ Kubernetes Imuṣiṣẹ + Iṣẹ. Aworan myapp: 1.4.2, 3 replicas, 8080 ports. Sipiyu 100m-500m, iranti 128Mi-512Mi fi awọn ibeere / awọn idiwọn. Fi igbesi aye laaye fun / healthz, ibere imurasilẹ fun / setan. Ka aṣiri naa lati ṣe apejuwe ohun naa.
Iyatọ: ẹya itọka keji yoo fun iwọn, awọn opin orisun, awọn sọwedowo ilera ati ofin aṣiri; Ijade jẹ isunmọ si iṣelọpọ ati ailewu.
Awọn aṣiṣe ti o wọpọ
- Ko ṣeto awọn opin orisun. Pod kan ṣoṣo le jẹ gbogbo ipade naa.
- Ko ṣe afikun ayẹwo ilera (iwadii). Kubernetes ko le ri ipadanu/ko ti ṣetan Pod.
- tag `: tuntun`. O di koyewa iru ẹya ti nṣiṣẹ, ko le ṣe yiyi pada.
- Ṣiṣe aṣiri taara si Git. Base64 kii ṣe fifi ẹnọ kọ nkan; gbogbo eniyan yanju rẹ.
- Ṣiṣe awọn aṣẹ ni ipo ti ko tọ / aaye orukọ. Ọna ti o wọpọ julọ lati jamba ninu prod.
- foo `--gbẹ-run`/`diff`. Ko rii ohun ti yoo ṣẹlẹ ṣaaju imuse.
Ni akojọpọ
Kubernetes jẹ alagbara kan sugbon eka orchestrator ti o laifọwọyi ransogun, irẹjẹ, ati ki o je ki awọn apoti kọja a iṣupọ; Ohun gbogbo ni asọye nipasẹ awọn YAML ti o farahan, eyiti Helm ṣe apẹrẹ. AI ni kiakia gbejade Imuṣiṣẹ / Awọn ifihan iṣẹ ati awọn shatti Helm, yanju awọn idun aramada - ṣugbọn o ni lati beere ni gbangba fun opin awọn orisun, ṣayẹwo ilera, aami aworan ti ko yipada, RBAC dín ati awọn ofin aabo asiri. --gbẹ-ṣiṣe, iyatọ ati iṣayẹwo ọrọ-ọrọ ti o tọ jẹ awọn isesi ti o ṣe idiwọ awọn jamba prod.
Ohun elo iṣẹ-ṣiṣe
Ni AI ina kan farahan fun a ayẹwo ohun elo pẹlu awọn awoṣe "Imuṣiṣẹ + Iṣẹ iran". Lẹhinna: (1) Jẹ ki o ṣayẹwo fun opin awọn oluşewadi, iwadii, tuntun, ati aṣiri pẹlu awoṣe “ayẹwo aabo/imọran”; (2) ṣiṣe kubectl apply --dry-run=olupin lori iṣupọ/minikube idanwo ti o ba ṣeeṣe ki o si ka iṣẹjade; (3) ṣakiyesi awọn nkan aabo / agbara to ṣe pataki julọ ti o rii pe o nsọnu.
akojọ ayẹwo
- [] Mo ṣafikun ẹya aworan, nọmba awọn ẹda, ibudo ati awọn opin orisun si ibeere mi.
- [] Mo ṣafikun igbesi aye ati iwadii imurasilẹ si ifihan.
- [] Aami aworan ti o wa titi; Emi ko lo: latest.
- [] Asiri ko ni ifibọ ninu ifihan; Mo ti lo Secret ohun / ita ifinkan.
- [] Mo dín RBAC/awọn igbanilaaye si awọn igbanilaaye to kere.
- [] Ṣaaju lilo, Mo rii daju pe Mo wa ni ipo to pe ati pe -- dry-run/diff àbájade.