7 bescht Praktiken fir Container ze benotzen laut Google

Note. iwwersat.: Den Auteur vum Originalartikel ass den Théo Chamley, Google Cloud Solutions Architect. An dësem Post fir de Google Cloud Blog liwwert hien e Resumé vu senger Firma méi detailléierte Guide, genannt "Beschte Praktiken fir Betriebsbehälter" An et hunn Google Experten bescht Praktiken gesammelt fir Container ze bedreiwen am Kontext vun der Benotzung vun der Google Kubernetes Engine a méi, op eng breet Palette vun Themen beréieren: vu Sécherheet bis Iwwerwaachung a Logbuch. Also wat sinn déi wichtegst Containerpraktiken laut Google?

7 bescht Praktiken fir Container ze benotzen laut Google

Kubernetes Engine (Kubernetes-baséiert Service fir containeriséiert Uwendungen op Google Cloud ze lafen - ca. Iwwersetzung) ass ee vun de beschte Weeër fir Aarbechtsbelaaschtungen ze lafen déi musse skaléieren. Kubernetes wäert de glate Fonctionnement vun de meeschten Uwendungen garantéieren wa se containeriséiert sinn. Awer wann Dir wëllt datt Är Applikatioun einfach ze verwalten ass a voll vu Kubernetes wëllt profitéieren, musst Dir bescht Praktiken verfollegen. Si vereinfachen d'Operatioun vun der Applikatioun, seng Iwwerwaachung an Debugging, an och d'Sécherheet erhéijen.

An dësem Artikel wäerte mir eng Lëscht vu Saachen duerchgoen déi Dir wësse sollt a maache fir Container effektiv op Kubernetes ze lafen. Déi, déi méi déif an d'Detailer wëlle goen, sollten d'Material liesen Beschte Praktiken fir Betriebsbehälter, an och oppassen op eis virdrun Post iwwer d'Zesummesetzung vun Container.

1. Benotzt gebierteg Container Logging Mechanismen

Wann d'Applikatioun op engem Kubernetes Cluster leeft, ass net vill fir Logbicher gebraucht. En zentraliséierte Logsystem ass méiglecherweis schonn an de Cluster agebaut deen Dir benotzt. Am Fall vu Kubernetes Engine benotzt, ass dëst verantwortlech Stackdriver Logging. (Note. iwwersat.: A wann Dir Är eege Kubernetes Installatioun benotzt, empfeelen mir eis Open Source Léisung méi no ze kucken - Loghaus.) Halt Äert Liewen einfach a benotzt gebierteg Container Protokollmechanismen. Schreift Logbicher op stdout an stderr - si ginn automatesch opgeholl, gespäichert an indexéiert.

Wann Dir wëllt, kënnt Dir och Logbicher schreiwen JSON Format. Dës Approche wäert et einfach maachen Metadaten hinnen ze addéieren. A mat hinnen, Stackdriver Logging wäert d'Fäegkeet hunn duerch Logbicher ze sichen mat dëse Metadaten.

2. Gitt sécher datt d'Container stateless an onverännerbar sinn

Fir datt Container korrekt an engem Kubernetes-Cluster funktionnéiere musse se statelos an onverännerbar sinn. Wann dës Konditioune erfëllt sinn, kann Kubernetes seng Aarbecht maachen, Applikatiounsentitéiten erstellen an zerstéieren wann a wou néideg.

Stateless heescht datt all Staat (persistent Daten vun iergendenger Aart) ausserhalb vum Container gespäichert ass. Fir dëst, ofhängeg vun de Bedierfnesser, kënnen verschidden Aarte vun externen Späichere benotzt ginn: Cloud Spëntchen, Persistent Disks, Redis, Cloud SQL oder aner verwalteten Datenbanken. (Note. iwwersat.: Liest méi iwwer dëst an eisem Artikel "Bedreiwer fir Kubernetes: wéi stateful Uwendungen ze lafen".)

Onverännerlech heescht datt de Container net während sengem Liewen geännert gëtt: keng Updates, Patches, Konfiguratiounsännerungen. Wann Dir Ären Applikatiounscode musst aktualiséieren oder e Patch applizéieren, erstellt en neit Bild an deploy et. Et ass recommandéiert de Container Configuratioun (Nolauschteren port, Runtime Ëmfeld Optiounen, etc.) extern ze plënneren - zu Geheimnisser и ConfigMaps. Si kënnen aktualiséiert ginn ouni en neit Containerbild ze bauen. Fir einfach Pipelines mat Bildversammlung ze kreéieren, kënnt Dir benotzen Cloud Build. (Note. iwwersat.: Mir benotzen en Open Source Tool fir dës Zwecker Dapp.)

7 bescht Praktiken fir Container ze benotzen laut Google
E Beispill fir d'Aktualiséierung vun der Deployment Konfiguratioun a Kubernetes mat ConfigMap montéiert a Pods als Config

3. Vermeiden privilegiéierten Container

Dir leeft keng Uwendungen als Root op Äre Serveren, richteg? Wann en Ugräifer an d'Applikatioun erakënnt, kritt hien root Zougang. Déi selwecht Considératiounen gëlle fir net privilegiéiert Container lafen. Wann Dir d'Astellunge vum Host änneren musst, kënnt Dir de Container spezifesch ginn Kënnen d'Optioun benotzen securityContext zu Kubernetes. Wann Dir musst änneren sysctls, Kubernetes huet separat abstrakt dofir. Am Allgemengen, probéiert déi bescht aus ze maachen init- a Sidecar Container fir ähnlech privilegiéiert Operatiounen auszeféieren. Si mussen net zougänglech sinn fir internen oder externen Traffic.

Wann Dir e Stärekoup verwalt, kënnt Dir benotzen Pod Sécherheetspolitik fir Restriktiounen op d'Benotzung vun privilegiéierten Container.

4. Vermeiden Lafen als root

Privilegéiert Container si scho diskutéiert ginn, awer et wäert nach besser sinn wann Dir zousätzlech zu dësem keng Uwendungen am Container als Root leeft. Wann en Ugräifer eng Remote Schwachstelle fënnt an enger Applikatioun mat Root-Rechter, déi d'Code-Ausféierung erlaabt, duerno kann hien de Container duerch eng nach onbekannt Schwachstelle verloossen, kritt hien Root um Host.

De beschte Wee fir dëst ze vermeiden ass näischt als Root an der éischter Plaz ze lafen. Fir dëst ze maachen, kënnt Dir d'Direktiv benotzen USER в Dockerfile oder runAsUser zu Kubernetes. De Cluster Administrateur kann och Duerchféierungsverhalen konfiguréieren mat Pod Sécherheetspolitik.

5. Maacht d'Applikatioun einfach ze iwwerwaachen

Wéi Logging, Iwwerwaachung ass en integralen Deel vun der Applikatiounsmanagement. Eng populär Iwwerwaachungsléisung an der Kubernetes Gemeinschaft ass Prometheus - e System deen automatesch Pods a Servicer erkennt déi Iwwerwaachung erfuerderen. (Note. iwwersat.: Kuckt och eis detailléierte Rapport iwwer d'Thema vun der Iwwerwaachung mat Prometheus a Kubernetes.) Stackdriver ass fäeg Kubernetes Cluster ze iwwerwaachen an enthält seng eege Versioun vum Prometheus fir Applikatiounsiwwerwaachung.

7 bescht Praktiken fir Container ze benotzen laut Google
Kubernetes Dashboard op Stackdriver

Prometheus erwaart datt d'Applikatioun Metriken op den HTTP-Endpunkt weiderginn. Disponibel fir dës Prometheus Client Bibliothéiken. Datselwecht Format gëtt vun aneren Tools benotzt wéi OpenCensus и Istio.

6. Maacht de Gesondheetszoustand vun der App verfügbar

Applikatiounsmanagement an der Produktioun gëtt gehollef vu senger Fäegkeet fir säi Staat un de ganze System ze kommunizéieren. Laaft d'Applikatioun? Ass et an der Rei? Sidd Dir prett Traffic ze kréien? Wéi behuelen hien sech? Deen allgemengste Wee fir dëse Problem ze léisen ass d'Gesondheetschecken ëmzesetzen (Gesondheetskontrollen). Kubernetes huet zwou Zorte: Liewens- a Bereetschaftsproben.

Fir Liveness Sonde (Vitalitéitskontrollen) d'Applikatioun muss en HTTP-Endpunkt hunn, deen eng "200 OK" Äntwert zréckginn wann et funktionell ass a seng Basisabhängegkeeten zefridden sinn. Fir Bereetschaft Sonde (Service Bereetschaft Kontrollen) d'Applikatioun muss en aneren HTTP-Endpunkt hunn, deen eng "200 OK" Äntwert zréckkënnt, wann d'Applikatioun an engem gesonden Zoustand ass, d'Initialiséierungsschrëtt ofgeschloss sinn an all gëlteg Ufro net zu engem Feeler resultéiert. Kubernetes wäert nëmmen de Verkéier op de Container router wann d'Applikatioun prett ass no dëse Kontrollen. Zwee Endpunkte kënne fusionéiert ginn wann et keen Ënnerscheed tëscht de Liewens- a Bereetschaftsstaaten ass.

Dir kënnt méi iwwer dëst am verwandten Artikel vum Sandeep Dinesh liesen, Entwéckler Affekot vu Google: "Kubernetes beschten Praktiken: Opstelle Gesondheetschecken mat Bereetschaft a Liveness Sonde".

7. Wielt Är Bild Versioun virsiichteg

Déi meescht ëffentlech a privat Biller benotzen e Markéierungssystem ähnlech wéi dee beschriwwen an Beschte Praktiken fir Container ze bauen. Wann d'Bild benotzt engem System no bei semantesch Versioun, Et ass néideg fir d'Spezifizitéite vum Tagging ze berücksichtegen. Zum Beispill, tag latest kann dacks vu Bild op Bild réckelen - kann net op vertraut ginn wann Dir prévisibel a widderhuelend Bauten an Installatiounen braucht.

Dir kënnt den Tag benotzen X.Y.Z (si sinn bal ëmmer onverännert), awer an dësem Fall, behalen all Patches an Updates vum Bild. Wann d'Bild dat Dir benotzt en Tag huet X.Y, Dëst ass eng gutt Optioun fir de gëllene Mëttel. Andeems Dir et auswielt, kritt Dir automatesch Patches a gläichzäiteg op déi stabil Versioun vun der Applikatioun vertraut.

PS vum Iwwersetzer

Liest och op eisem Blog:

Source: will.com

Setzt e Commentaire