7 migliori pratiche per aduprà cuntenituri secondu Google

Nota. transl.: L'autore di l'articulu originale hè Théo Chamley, Google Cloud Solutions Architect. In questu post per u blog di Google Cloud, furnisce un riassuntu di a guida più dettagliata di a so cumpagnia, chjamata "Best Practices per Operating Containers" In questu, l'esperti di Google anu recullatu e migliori pratiche per l'operazione di cuntenituri in u cuntestu di l'usu di u Google Kubernetes Engine è più, toccu una larga gamma di temi: da a sicurità à u monitoraghju è u logging. Allora chì sò e pratiche più impurtanti di u containeru secondu Google?

7 migliori pratiche per aduprà cuntenituri secondu Google

Kubernetes Engine (Serviziu basatu in Kubernetes per l'esecuzione di applicazioni containerizzate in Google Cloud - ca. transl.) hè unu di i migliori modi per eseguisce carichi di travagliu chì anu bisognu di scala. Kubernetes assicurerà u funziunamentu lisu di a maiò parte di l'applicazioni si sò containerizzati. Ma se vulete chì a vostra applicazione sia faciule da gestisce è vulete prufittà pienamente di Kubernetes, avete bisognu di seguità e migliori pratiche. Semplificheranu u funziunamentu di l'applicazione, u so monitoraghju è u debugging, è ancu aumentà a sicurità.

In questu articulu, andemu per una lista di e cose chì duvete sapè è fà per eseguisce cuntenituri in modu efficace in Kubernetes. Quelli chì vulianu approfondisce i dettagli duveranu leghje u materiale Best Practices per Operating Containers, è ancu attentu à i nostri post prima circa l'assemblea di cuntenituri.

1. Aduprà miccanismi di logging di cuntainer nativu

Se l'applicazione hè in esecuzione nantu à un cluster Kubernetes, ùn hè micca necessariu assai per i logs. Un sistema di logu centralizatu hè probabilmente digià custruitu in u cluster chì site aduprate. In u casu di utilizà Kubernetes Engine, questu hè rispunsevule Logging di Stackdriver. (Nota. transl.: È se utilizate a vostra propria installazione Kubernetes, ricumandemu di guardà più attente à a nostra soluzione Open Source - casa di legnu.) Mantene a vostra vita simplice è aduprate miccanismi nativi di logging di container. Scrivite logs à stdout è stderr - seranu automaticamente ricevuti, salvati è indexati.

Se vulete, pudete ancu scrive logs Format JSON. Stu approcciu vi farà fàciule à aghjunghje metadata à elli. È cun elli, Stackdriver Logging avarà a capacità di ricercà à traversu logs utilizendu sta metadata.

2. Assicuratevi chì i cuntenituri sò stateless è immutable

Per chì i cuntenituri funzionanu currettamente in un cluster Kubernetes, devenu esse senza statu è immutable. Una volta queste cundizioni sò scontri, Kubernetes pò fà u so travagliu, creendu è distrughjendu entità di l'applicazione quandu è induve necessariu.

Apatridi significa chì ogni statu (dati persistenti di ogni tipu) hè guardatu fora di u cuntinuu. Per questu, sicondu i bisogni, ponu esse utilizati diversi tipi di almacenamentu esternu: Cloud Storage, Dischi persistenti, Redis, Cloud SQL o altre basa di dati gestite. (Nota. transl.: Leghjite più nantu à questu in u nostru articulu "Operatori per Kubernetes: cumu eseguisce applicazioni stateful".)

Immutabile significa chì u cuntinuu ùn serà micca mudificatu durante a so vita: senza aghjurnamenti, patch, cambiamenti di cunfigurazione. Sè avete bisognu di aghjurnà u vostru codice di l'applicazione o applicà un patch, crea una nova maghjina è implementa. Hè cunsigliatu di spustà a cunfigurazione di u containeru (portu d'ascolta, opzioni di l'ambiente di runtime, etc.) esternamente - à Secrets и ConfigMaps. Puderanu esse aghjurnati senza avè bisognu di custruisce una nova maghjina di cuntainer. Per creà facilmente pipelines cù l'assemblea di l'imaghjini, pudete aduprà Cloud Build. (Nota. transl.: Usemu un strumentu Open Source per questi scopi dapp.)

7 migliori pratiche per aduprà cuntenituri secondu Google
Un esempiu di aghjurnà a cunfigurazione di implementazione in Kubernetes usendu ConfigMap muntatu in pods cum'è cunfigurazione

3. Evite cuntenituri privilegiati

Ùn eseguite micca l'applicazioni cum'è root in i vostri servitori, nò? Se un attaccu entra in l'appiecazione, uttene accessu à a radica. E stesse considerazioni s'applicanu à ùn eseguisce cuntenituri privilegiati. Sè avete bisognu di cambià i paràmetri nantu à l'ospite, pudete dà u cuntinuu specificu capacità usendu l'opzione securityContext in Kubernetes. Sè avete bisognu di cambià sysctls, Kubernetes hà astrattu separatu per questu. In generale, pruvate à fà u più init- è cuntenituri sidecar per fà operazioni privilegiate simili. Ùn deve micca esse accessibile à u trafficu internu o esternu.

Se amministra un cluster, pudete aduprà Politica di Sicurezza Pod per restrizioni à l'usu di cuntenituri privilegiati.

4. Evitari corsa cum'è root

I cuntenituri privilegiati sò digià discututi, ma serà ancu megliu se, in più di questu, ùn eseguite micca applicazioni in u cuntinuu cum'è root. Se un attaccu trova una vulnerabilità remota in una applicazione cù diritti di root chì permette l'esekzione di codice, dopu à quale ellu hè capaci di lascià u cuntinuu attraversu una vulnerabilità ancu scunnisciuta, guadagnà a radica in l'ospite.

U megliu modu per evità questu hè di ùn eseguisce nunda cum'è root in u primu locu. Per fà questu, pudete aduprà a direttiva USER в Dockerfile o runAsUser in Kubernetes. L'amministratore di u cluster pò ancu cunfigurà u cumpurtamentu di l'infurzazioni utilizendu Politica di Sicurezza Pod.

5. Fate l 'applicazzioni facile à monitorà

Cum'è u logu, u monitoraghju hè una parte integrante di a gestione di l'applicazioni. Una soluzione di monitoraghju populari in a cumunità Kubernetes hè Prometheus - un sistema chì rileva automaticamente pods è servizii chì necessitanu monitoraghju. (Nota. transl.: Vede ancu i nostri rapportu detallatu nantu à u tema di u monitoraghju cù Prometheus è Kubernetes.) Stackdriver hè capace di monitorà i cluster Kubernetes è include a so propria versione di Prometheus per u monitoraghju di l'applicazioni.

7 migliori pratiche per aduprà cuntenituri secondu Google
Kubernetes Dashboard nantu à Stackdriver

Prometheus aspetta chì l'applicazione trasmette metriche à l'endpoint HTTP. Disponibile per questu Biblioteche client Prometheus. U listessu furmatu hè usatu da altri arnesi cum'è OpenCensus и Istio.

6. Fate u statu di salute di l 'app disponibile

A gestione di l'applicazioni in a produzzione hè aiutata da a so capacità di cumunicà u so statu à tuttu u sistema. L'applicazione funziona? Hè bè? Sò prontu à riceve u trafficu? Cumu si cumporta ? U modu più cumuni per risolve stu prublema hè di implementà cuntrolli di salute (Controlli di salute). Kubernetes hà dui tipi: sonde di vivacità è prontezza.

Per a sonda di vivacità (cuntrolli di vitalità) l'applicazione deve avè un endpoint HTTP chì torna una risposta "200 OK" s'ellu hè funziunale è e so dipendenze basi sò soddisfatte. Per sonda di prontezza (verificazioni di prontezza di serviziu) l'applicazione deve avè un altru endpoint HTTP chì torna una risposta "200 OK" se l'applicazione hè in un statu sanu, i passi di inizializazione sò stati cumpletati è ogni dumanda valida ùn hà micca risultatu in un errore. Kubernetes solu indirizzà u trafficu à u containeru se l'applicazione hè pronta secondu questi cuntrolli. Dui punti finali ponu esse uniti s'ellu ùn ci hè micca differenza trà i stati di vita è di prontezza.

Pudete leghje più nantu à questu in l'articulu cunnessu da Sandeep Dinesh, Developer Advocate da Google: "E migliori pratiche di Kubernetes: Configurazione di cuntrolli di salute cù sonde di prontezza è vitalità».

7. Sceglite a vostra versione imagine cun cura

A maiò parte di l'imaghjini publichi è privati ​​utilizanu un sistema di tagging simile à quellu descrittu in Best Practices per a Custruzzione di Containers. Se l'imaghjini usa un sistema vicinu à versione semantica, hè necessariu di piglià in contu i specifichi di tagging. Per esempiu, tag latest pò passà spessu da l'imaghjini à l'imaghjini - ùn pò micca esse affidatu se avete bisognu di custruzzioni è installazioni prevedibili è ripetibili.

Pudete aduprà u tag X.Y.Z (sò quasi sempre invariati), ma in questu casu, seguite tutti i patch è l'aghjurnamenti di l'imaghjini. Se l'imaghjini chì utilizate hà una tag X.Y, Questa hè una bona opzione per u mediu d'oru. Sceltendu, riceve automaticamente patch è à u stessu tempu s'appoghjanu nantu à a versione stabile di l'applicazione.

PS da u traduttore

Leghjite puru nant'à u nostru blog:

Source: www.habr.com

Add a comment