7 paraugprakse konteineru lietoÅ”anai saskaņā ar Google

PiezÄ«me. tulk.: oriÄ£inālā raksta autors ir ThĆ©o Chamley, Google Cloud Solutions arhitekts. Å ajā Google Cloud emuāra ziņojumā viņŔ sniedz kopsavilkumu par sava uzņēmuma detalizētāku rokasgrāmatu ar nosaukumu "Paraugprakse konteineru ekspluatācijai" Tajā Google eksperti apkopoja konteineru darbÄ«bas paraugpraksi saistÄ«bā ar Google Kubernetes Engine un daudz ko citu, pieskaroties plaÅ”am tēmu lokam: no droŔības lÄ«dz uzraudzÄ«bai un reÄ£istrēŔanai. Tātad, kāda ir vissvarÄ«gākā konteineru prakse saskaņā ar Google?

7 paraugprakse konteineru lietoÅ”anai saskaņā ar Google

Kubernetes dzinējs (Uz Kubernetes balstÄ«ts pakalpojums konteinerizētu lietojumprogrammu palaiÅ”anai pakalpojumā Google Cloud ā€” apm. tulkojums) ir viens no labākajiem veidiem, kā izpildÄ«t darba slodzes, kurām nepiecieÅ”ams mērogot. Kubernetes nodroÅ”inās nevainojamu lielāko daļu lietojumprogrammu darbÄ«bu, ja tās ir konteineros. Bet, ja vēlaties, lai jÅ«su lietojumprogramma bÅ«tu viegli pārvaldāma un vēlaties pilnÄ«bā izmantot Kubernetes sniegtās priekÅ”rocÄ«bas, jums ir jāievēro paraugprakse. Tie vienkārÅ”os lietojumprogrammas darbÄ«bu, tās uzraudzÄ«bu un atkļūdoÅ”anu, kā arÄ« palielinās droŔību.

Å ajā rakstā mēs apskatÄ«sim sarakstu ar lietām, kas jums jāzina un jādara, lai Kubernetes efektÄ«vi palaistu konteinerus. Tiem, kas vēlas iedziļināties detaļās, vajadzētu izlasÄ«t materiālu Paraugprakse konteineru ekspluatācijai, kā arÄ« pievērsiet uzmanÄ«bu mÅ«su agrāks ieraksts par konteineru komplektēŔanu.

1. Izmantojiet vietējos konteineru reÄ£istrēŔanas mehānismus

Ja lietojumprogramma darbojas Kubernetes klasterÄ«, žurnāliem nav nepiecieÅ”ams daudz. Iespējams, ka jÅ«su izmantotajā klasterÄ« jau ir iebÅ«vēta centralizēta reÄ£istrēŔanas sistēma. Kubernetes Engine lietoÅ”anas gadÄ«jumā tas ir atbildÄ«gs Stackdriver reÄ£istrēŔana. (PiezÄ«me. tulk.: Un, ja izmantojat savu Kubernetes instalāciju, iesakām tuvāk apskatÄ«t mÅ«su atvērtā pirmkoda risinājumu - guļbÅ«ve.) Saglabājiet savu dzÄ«vi vienkārÅ”u un izmantojiet vietējos konteineru reÄ£istrēŔanas mehānismus. Ierakstiet žurnālus stdout un stderr — tie tiks automātiski saņemti, saglabāti un indeksēti.

Ja vēlaties, varat arÄ« rakstÄ«t žurnālus JSON formātā. Å Ä« pieeja atvieglos metadatu pievienoÅ”anu tiem. Un ar tiem Stackdriver Logging varēs meklēt žurnālos, izmantojot Å”os metadatus.

2. Pārliecinieties, vai konteineri ir bezvalsts un nemainīgi

Lai konteineri Kubernetes klasterī darbotos pareizi, tiem jābūt bezvalstniekiem un nemainīgiem. Kad Ŕie nosacījumi ir izpildīti, Kubernetes var veikt savu darbu, izveidojot un iznīcinot lietojumprogrammu entītijas, kad un kur tas ir nepiecieŔams.

Bezvalstnieks nozÄ«mē, ka jebkurÅ” stāvoklis (jebkura veida pastāvÄ«gi dati) tiek glabāts ārpus konteinera. Å im nolÅ«kam atkarÄ«bā no vajadzÄ«bām var izmantot dažāda veida ārējo atmiņu: Cloud Storage, NoturÄ«gi diski, Redis, Mākoņa SQL vai citas pārvaldÄ«tas datu bāzes. (PiezÄ«me. tulk.: Lasiet vairāk par to mÅ«su rakstā "Kubernetes operatori: kā palaist statusa lietojumprogrammas".)

NemainÄ«gs nozÄ«mē, ka konteiners tā dzÄ«ves laikā netiks pārveidots: nav atjauninājumu, ielāpu, konfigurācijas izmaiņu. Ja nepiecieÅ”ams atjaunināt lietojumprogrammas kodu vai lietot ielāpu, izveidojiet jaunu attēlu un izvietojiet to. Ieteicams konteinera konfigurāciju (klausīŔanās ports, izpildlaika vides opcijas utt.) pārvietot ārēji - uz Noslēpumi Šø ConfigMaps. Tos var atjaunināt, neveidojot jaunu konteinera attēlu. Lai viegli izveidotu cauruļvadus ar attēla montāžu, varat izmantot Cloud Build. (PiezÄ«me. tulk.: Å”iem nolÅ«kiem mēs izmantojam atvērtā pirmkoda rÄ«ku dapp.)

7 paraugprakse konteineru lietoÅ”anai saskaņā ar Google
Piemērs izvietoÅ”anas konfigurācijas atjaunināŔanai Kubernetes, izmantojot ConfigMap, kas uzstādÄ«ts podiņos kā konfigurāciju

3. Izvairieties no priviliģētiem konteineriem

JÅ«s savos serveros nepalaižat lietojumprogrammas kā root, vai ne? Ja uzbrucējs nokļūst lietojumprogrammā, viņŔ iegÅ«s root piekļuvi. Tie paÅ”i apsvērumi attiecas uz priviliģēto konteineru nedarbināŔanu. Ja jums ir jāmaina saimniekdatora iestatÄ«jumi, varat norādÄ«t konkrētu konteineru iespējas izmantojot opciju securityContext Kubernetes pilsētā. Ja jums ir nepiecieÅ”ams mainÄ«t sysctls, Kubernetes ir atseviŔķs abstrakts priekÅ” Ŕī. Kopumā mēģiniet maksimāli izmantot tajā- un blakusvāģu konteineri, lai veiktu lÄ«dzÄ«gas priviliģētas darbÄ«bas. Tiem nav jābÅ«t pieejamiem ne iekŔējai, ne ārējai satiksmei.

Ja administrējat kopu, varat izmantot Pod droŔības politika par priviliģēto konteineru lietoÅ”anas ierobežojumiem.

4. Izvairieties darboties kā root

Priviliģētie konteineri jau ir apspriesti, taču bÅ«s vēl labāk, ja papildus tam jÅ«s nepalaižat lietojumprogrammas konteinerā kā root. Ja uzbrucējs lietojumprogrammā ar saknes tiesÄ«bām atrod attālu ievainojamÄ«bu, kas ļauj izpildÄ«t kodu, pēc kuras viņŔ var atstāt konteineru, izmantojot vēl nezināmu ievainojamÄ«bu, viņŔ iegÅ«s resursdatora saknes tiesÄ«bas.

Labākais veids, kā no tā izvairÄ«ties, ir vispirms neko nedarbināt kā root. Lai to izdarÄ«tu, varat izmantot direktÄ«vu USER в Dockerfile vai runAsUser in Kubernetes. Klastera administrators var arÄ« konfigurēt izpildes darbÄ«bu, izmantojot Pod droŔības politika.

5. Padariet lietojumprogrammu viegli pārskatāmu

Tāpat kā reÄ£istrēŔana, arÄ« uzraudzÄ«ba ir lietojumprogrammu pārvaldÄ«bas neatņemama sastāvdaļa. Populārs uzraudzÄ«bas risinājums Kubernetes kopienā ir Prometejs - sistēma, kas automātiski nosaka podi un pakalpojumus, kuriem nepiecieÅ”ama uzraudzÄ«ba. (PiezÄ«me. tulk.: Skatiet arÄ« mÅ«su detalizēts ziņojums par monitoringu, izmantojot Prometheus un Kubernetes.) Stackdriver spēj uzraudzÄ«t Kubernetes klasterus un ietver savu Prometheus versiju lietojumprogrammu uzraudzÄ«bai.

7 paraugprakse konteineru lietoÅ”anai saskaņā ar Google
Kubernetes informācijas panelis vietnē Stackdriver

Prometheus sagaida, ka lietojumprogramma pārsÅ«tÄ«s metriku uz HTTP galapunktu. Pieejams Å”im nolÅ«kam Prometheus klientu bibliotēkas. To paÅ”u formātu izmanto citi rÄ«ki, piemēram OpenCensus Šø Istio.

6. Padariet pieejamu lietotnes veselÄ«bas stāvokli

Lietojumprogrammu pārvaldÄ«bu ražoÅ”anā palÄ«dz tās spēja paziņot par savu stāvokli visai sistēmai. Vai lietojumprogramma darbojas? Vai tas ir labi? Vai esat gatavs saņemt trafiku? Kā viņŔ uzvedas? VisizplatÄ«tākais veids, kā atrisināt Å”o problēmu, ir veikt veselÄ«bas pārbaudes (veselÄ«bas pārbaudes). Kubernetes ir divu veidu: dzÄ«vÄ«guma un gatavÄ«bas zondes.

Par dzÄ«vÄ«guma zondi (vitalitātes pārbaudes) lietojumprogrammai ir jābÅ«t HTTP galapunktam, kas atgriež atbildi "200 OK", ja tā ir funkcionāla un tās pamata atkarÄ«bas ir izpildÄ«tas. GatavÄ«bas zondei (servisa gatavÄ«bas pārbaudes) lietojumprogrammai ir jābÅ«t citam HTTP galapunktam, kas atgriež atbildi "200 OK", ja lietojumprogramma ir labā stāvoklÄ«, inicializācijas darbÄ«bas ir pabeigtas un neviens derÄ«gs pieprasÄ«jums neizraisa kļūdu. Kubernetes novirzÄ«s trafiku uz konteineru tikai tad, ja lietojumprogramma ir gatava saskaņā ar Ŕīm pārbaudēm. Divus galapunktus var apvienot, ja nav atŔķirÄ«bas starp dzÄ«vÄ«guma un gatavÄ«bas stāvokļiem.

Vairāk par to varat izlasÄ«t saistÄ«tajā rakstā no Sandeep Dinesh, Google izstrādātāja advokāta: ā€œKubernetes labākā prakse: veselÄ«bas pārbaužu iestatīŔana, izmantojot gatavÄ«bas un dzÄ«vÄ«bas zondes'.

7. Rūpīgi izvēlieties attēla versiju

Lielākajai daļai publisko un privāto attēlu tiek izmantota atzÄ«mēŔanas sistēma, kas ir lÄ«dzÄ«ga tai, kas aprakstÄ«ta rakstā Konteineru veidoÅ”anas paraugprakse. Ja attēlā tiek izmantota sistēma, kas ir tuvu semantiskā versiju veidoÅ”ana, ir jāņem vērā iezÄ«mēŔanas specifika. Piemēram, tag latest var bieži pārvietoties no attēla uz citu ā€” uz to nevar paļauties, ja jums ir nepiecieÅ”amas paredzamas un atkārtojamas konstrukcijas un instalācijas.

Varat izmantot tagu X.Y.Z (tie gandrÄ«z vienmēr ir nemainÄ«gi), taču Å”ajā gadÄ«jumā sekojiet lÄ«dzi visiem attēla ielāpiem un atjauninājumiem. Ja jÅ«su izmantotajam attēlam ir atzÄ«me X.Y, tas ir labs risinājums zelta vidusceļam. Izvēloties to, jÅ«s automātiski saņemat ielāpus un vienlaikus paļaujaties uz stabilo aplikācijas versiju.

PS no tulka

Lasi arī mūsu emuārā:

Avots: www.habr.com

Pievieno komentāru