Cele mai bune practici și recomandări pentru lansarea containerelor și Kubernetes în medii de producție

Cele mai bune practici și recomandări pentru lansarea containerelor și Kubernetes în medii de producție
Ecosistemele tehnologiilor de containerizare se dezvoltă rapid și se schimbă, de aceea există un deficit de bune practici în acest domeniu. Totuși, Kubernetes și containerele sunt utilizate din ce în ce mai mult — atât pentru modernizarea aplicațiilor vechi, cât și pentru dezvoltarea aplicațiilor cloud moderne. 

Comanda Kubernetes aaS de la Mail.ru a adunat previziuni, sfaturi și cele mai bune practici pentru liderii pieței de la Gartner, 451 Research, StacxRoх și altele. Acestea vor ajuta la asigurarea și accelerarea desfășurării containerelor în medii de producție.

Cum să înțelegeți dacă compania dumneavoastră este pregătită să desfășoare containere în medii de producție

Conform Gartner, în 2022, mai mult de 75% dintre organizații vor folosi aplicații containerizate în producție. Aceasta este o creștere semnificativă față de prezent, când astfel de aplicații sunt utilizate de mai puțin de 30% dintre companii. 

Conform 451 Research, piața estimată pentru aplicarea tehnologiilor containerizate în 2022 va fi de 4,3 miliarde de dolari. Aceasta depășește de mai mult de două ori sumele prognozate în 2019, iar ritmul de creștere al pieței este de 30%.

În în sondajul realizat de Portworx și Aqua Security 87% dintre respondenți au declarat că în prezent utilizează tehnologii de containere. Comparativ, în 2017, procentajul respondenților era de 55%. 

În ciuda interesului în creștere și a implementării în expansiune a containerelor, desfășurarea acestora în producție necesită instruire din cauza maturității tehnologice și a lipsei de know-how. Organizațiile trebuie să privească realist procesele de afaceri care necesită containerizarea aplicațiilor. Liderii IT ar trebui să evalueze dacă dispune de abilitățile necesare pentru a avansa, având în vedere necesitatea unei învățări rapide. 

Experții Gartner consideră că întrebările din imaginea de mai jos vă vor ajuta să înțelegeți dacă sunteți pregătiți pentru desfășurarea containerelor în producție:

Cele mai bune practici și recomandări pentru lansarea containerelor și Kubernetes în medii de producție

Cele mai frecvente erori în aplicarea containerelor în producție

Organizațiile adesea subestimează eforturile necesare pentru operarea containerelor în producție. Gartner a descoperit câteva erori comune în scenariile clienților atunci când aplică containere în medii de producție:

Cele mai bune practici și recomandări pentru lansarea containerelor și Kubernetes în medii de producție

Cum să asigurați securitatea containerelor

Securitatea nu poate fi tratată «după». Aceasta trebuie să fie integrată în procesul DevOps, motiv pentru care a apărut chiar un termen special — DevSecOps. Organizațiile trebuie să planifice protecția mediului containerizat pe parcursul întregului ciclu de viață al dezvoltării, care include procesul de construire și dezvoltare, desfășurare și lansare a aplicației.

Recomandări de la Gartner: 

  1. Integrați procesul de scanare a imaginilor aplicației pentru a detecta vulnerabilitățile în pipeline-ul de integrare continuă/livrare continuă (CI/CD). Aplicațiile sunt scanate în etapele de construire și lansare a software-ului. Subliniați necesitatea scanării și identificării componentelor cu sursă deschisă, biblioteci și cadre. Folosirea de către dezvoltatori a versiunilor vechi și vulnerabile este una dintre principalele cauze ale vulnerabilităților containerelor.
  2. Îmbunătățiți configurația prin teste Center for Internet Security (CIS), care sunt disponibile atât pentru Docker, cât și pentru Kubernetes.
  3. Asigurați-vă că aplicați controlul accesului, asigurați separarea responsabilităților și implementați o politică de gestionare a secretelor. Informațiile confidențiale, cum ar fi cheile Secure Sockets Layer (SSL) sau acreditivele bazei de date, sunt criptate de orchestrator sau de servicii externe de gestionare și furnizate în timpul execuției.
  4. Evitați containerele cu privilegii ridicate prin gestionarea politicilor de securitate, acest lucru va reduce riscurile potențiale de atac.
  5. Utilizați instrumente de securitate care oferă liste albe, monitorizare comportamentală și detectare a anomaliilor pentru a preveni activități malițoase.

Recomandări de la StacxRox:

  1. Folosiți capacitățile încorporate ale Kubernetes. Configurați accesul utilizatorilor utilizând roluri. Asigurați-vă că nu oferiți permisiuni nejustificate unor subiecți, chiar dacă poate fi necesar să vă gândiți la permisiunile minime necesare. Poate părea tentant să oferiți administratorului cluster-ului privilegii largi, deoarece economisește timp în stadiul inițial. Totuși, orice compromis sau erori în cont pot duce la consecințe devastatoare mai târziu. 
  2. Evitați duplicarea permisiunilor de acces. Uneori, poate fi util ca diferite roluri să se suprapună, dar acest lucru poate cauza probleme în exploatare și poate crea „zone moarte” în timp ce se elimină permisiunile. În plus, este important să eliminați rolurile nefolosite și inactive.
  3. Stabiliți politici de rețea: izolați modulele pentru a restricționa accesul la ele; permiteți explicit accesul la internet pentru acele module care au nevoie, utilizând etichete; permiteți explicit comunicarea între modulele care trebuie să interacționeze între ele. 

Cum să organizați monitorizarea containerelor și a serviciilor din acestea

Securitate și monitorizare — probleme principale ale companiilor la desfășurarea clusterelor Kubernetes. Dezvoltatorii sunt întotdeauna mai concentrați pe funcționalitățile aplicațiilor pe care le dezvoltă, mai degrabă decât pe aspectele monitorizării acestor aplicații. 

Recomandări de la Gartner:

  1. Încercați să monitorizați starea containerelor sau a serviciilor din acestea împreună cu monitorizarea sistemelor gazdă.
  2. Alegeți furnizori și instrumente cu integrare profundă în orchestrarea containerelor, în special Kubernetes.
  3. Selectați instrumente care oferă logare detaliată, descoperire automată a serviciilor și recomandări în timp real utilizând analitica și/sau învățarea automată.

În blogul SolarWinds se recomandă:

  1. Utilizarea instrumentelor pentru descoperirea automată și urmărirea metricilor containerului, corelarea metricilor de performanță, cum ar fi CPU, memorie și timp de funcționare fără întrerupere.
  2. Asigurați-vă că planificarea capacității este optimă prin prognoza timpilor de epuizare a capacității pe baza indicatorilor de monitorizare a containerelor.
  3. Organizați monitorizarea aplicațiilor gazduite în containere, în funcție de parametrii de disponibilitate și performanță, ceea ce este util atât pentru planificarea capacității, cât și pentru soluționarea problemelor de performanță.
  4. Automatizați fluxurile de lucru, oferind suport pentru gestionarea și scalarea containerelor și mediilor lor de găzduire.
  5. Automatizați controlul accesului, pentru a urmări baza de utilizatori, a dezactiva conturile învechite și cele pentru oaspeți, a elimina privilegii inutile.
  6. Asigurați-vă că setul dumneavoastră de instrumente poate urmări aceste containere și aplicații în medii diverse (cloud, on-premises sau hibride) pentru vizualizarea și corelarea performanței în infrastructură, rețea, sisteme și aplicații.

Cum să stocați datele și să le asigurați securitatea

Odată cu creșterea numărului de containere de lucru cu starea păstrată, clienții trebuie să ia în considerare stocarea datelor în afara gazdei, precum și necesitatea protejării acestor date. 

Potrivit sondajul Portworx și Aqua Security, securitatea datelor se află pe primul loc în lista problemelor de securitate menționate de majoritatea respondenților (61%). 

Criptarea datelor este principala strategie de securitate (64%), cu toate acestea, respondenții utilizează și monitorizarea timpului de execuție

(49%), scanarea vulnerabilităților în registre (49%), scanarea vulnerabilităților în pipeline-urile CI/CD (49%) și blocarea anomaliilor prin protecția timpului de execuție (48%).

Recomandări de la Gartner:

  1. Alegeți soluții de stocare a datelor bazate pe principii arhitecturii microserviciilor. Este mai bine să optați pentru cele care respectă cerințele de stocare a datelor pentru serviciile de containere, sunt independente de hardware, sunt gestionate prin API, au o arhitectură distribuită, susțin desfășurarea locală și desfășurarea în cloud public.
  2. Evitați pluginurile și interfețele proprietare. Alegeți furnizori care asigură integrarea cu Kubernetes și susțin interfețe standard, cum ar fi CSI (Container Storage Interfaces).

Cum să lucrați cu rețelele

Modelul tradițional de rețea corporativă, unde specialiștii IT creează medii de dezvoltare, testare, asigurarea calității și producție pentru fiecare proiect, nu se potrivește întotdeauna bine cu fluxul de lucru al dezvoltării continue. În plus, rețelele de containere acoperă mai multe niveluri.

În în blogul Magalix au fost adunate reguli de înalt nivel la care trebuie să se alinieze implementarea unei soluții de rețea în cluster:

  1. Podurile programate pe același nod trebuie să aibă capacitatea de a schimba date cu alte module fără a utiliza NAT (Network Address Translation).
  2. Toate demonii sistemului (procesele de fundal, cum ar fi kubelet) care rulează pe un anumit nod pot interacționa cu podurile care funcționează pe același nod.
  3. Podurile care utilizează rețeaua gazdelor, trebuie să aibă capacitatea de a se conecta cu toate celelalte poduri de pe toate celelalte noduri fără a utiliza NAT. Vă rugăm să rețineți că rețeaua gazdelor este susținută doar pe gazde Linux.

Soluțiile de rețea ar trebui să fie integrate strâns cu primitivele și politicile Kubernetes. Liderii IT ar trebui să urmărească un grad ridicat de automatizare a rețelei, oferind dezvoltatorilor instrumentele adecvate și flexibilitatea necesară.

Recomandări de la Gartner:

  1. Verificați dacă serviciul dumneavoastră CaaS (container ca serviciu) sau rețeaua SDN (rețea definită prin software) suportă rețele Kubernetes. Dacă nu sau dacă suportul este insuficient, utilizați interfața de rețea CNI (Container Network Interface) pentru containerele dumneavoastră, care oferă funcționalitățile și politicile necesare.
  2. Asigurați-vă că CaaS-ul sau PaaS-ul dumneavoastră (platforma ca serviciu) sprijină crearea controlerelor de intrare și/sau a echilibratoarelor de sarcină care distribuie traficul de intrare între nodurile cluster-ului. Dacă această opțiune nu este disponibilă, explorați utilizarea de proxy-uri terță parte sau mecanisme service mesh.
  3. Instruirea inginerilor de rețea în utilizarea rețelelor Linux și a instrumentelor de automatizare a rețelelor este esențială pentru a reduce diferențele de abilități și a crește flexibilitatea.

Cum să gestionați ciclul de viață al aplicațiilor

Pentru livrarea automată și continuă a aplicațiilor, trebuie să adăugați orchestrării containerelor alte unelte de automatizare, cum ar fi produsele de infrastructură ca cod (IaC). Acestea includ Chef, Puppet, Ansible și Terraform. 

Sunt necesare și instrumentele de automatizare a construcției și desfășurării aplicațiilor (vezi „Cadranul magic pentru orchestrarea desfășurării aplicațiilor„). Containerele oferă, de asemenea, oportunități de scalare similare cu cele care existau la desfășurarea mașinilor virtuale (VM). Astfel, liderii IT ar trebui să aibă instrumentele de gestionare a ciclului de viață al containerelor.

Recomandări de la Gartner:

  1. Stabiliți standarde pentru imaginile de bază ale containerelor, având în vedere dimensiunea, licențierea și flexibilitatea pentru adăugarea de componente de către dezvoltatori.
  2. Utilizați sisteme de gestionare a configurației pentru a gestiona ciclul de viață al containerelor, care plasează configurația în straturi bazate pe imaginile de bază, aflate în repozitorii publice sau private.
  3. Integrați platforma CaaS cu instrumentele de automatizare pentru a automatiza întregul flux de lucru al aplicației.

Cum să gestionați containerele cu ajutorul orchestratorilor

Funcționalitățile de bază pentru desfășurarea containerelor sunt oferite la nivelurile de orchestrare și planificare. În timpul planificării, containerele sunt plasate pe gazdele cele mai optime din cluster, așa cum impun cerințele nivelului de orchestrare. 

Kubernetes a devenit de facto standardul pentru orchestrarea containerelor, având o comunitate activă, fiind susținut de majoritatea furnizorilor comerciali de frunte. 

Recomandări de la Gartner:

  1. Definiți cerințele de bază pentru controalele de securitate, monitorizare, gestionarea politicilor, păstrarea datelor, gestionarea rețelelor și ciclul de viață al containerelor.
  2. Pe baza acestor cerințe, alegeți instrumentul care se potrivește cel mai bine nevoilor și scenariilor dumneavoastră de utilizare.
  3. Utilizați cercetările Gartner (vezi „Cum să alegeți modelul de desfășurare Kubernetes”), pentru a înțelege avantajele și dezavantajele diferitelor modele de desfășurare Kubernetes și pentru a alege cel mai potrivit pentru sarcina dumneavoastră.
  4. Alegeți un furnizor care poate oferi orchestrare hibridă pentru containerele de lucru în medii multiple, cu o integrare strânsă cu backend-urile, planuri de gestionare comune și modele de prețuri consistente.

Cum să utilizați capabilitățile furnizorilor de cloud

Gartner consideră, că interesul pentru desfășurarea containerelor în IaaS-ul public crește datorită disponibilității ofertelor CaaS gata de utilizare, precum și a integrării strânse a acestor oferte cu alte produse oferite de furnizorii de cloud.

IaaS-urile oferă consum de resurse la cerere, scalabilitate rapidă și managementul serviciilor, care ajută la evitarea necesității de cunoștințe profunde despre infrastructură și întreținerea acesteia. Cei mai mulți furnizori de cloud oferă un serviciu de gestionare a containerelor, iar unii oferă mai multe opțiuni de orchestrare. 

Principalele servicii de cloud gestionate sunt listate în tabel: 

Furnizor de cloud
Tip de serviciu
Produs/serviciu

Alibaba
Serviciu Cloud Nativ
Alibaba Cloud Container Service, Alibaba Cloud Container Service for Kubernetes

Amazon Web Services (AWS)
Serviciu Cloud Nativ
Amazon Elastic Container Services (ECS), Amazon ECS for Kubernetes (EKS), AWS Fargate

Giant Swarm
MSP
Giant Swarm Managed Kubernetes Infrastructure

Google
Serviciu Cloud Nativ
Google Container Engine (GKE)

IBM
Serviciu Cloud Nativ
IBM Cloud Kubernetes Service

de Microsoft
Serviciu Cloud Nativ
Azure Kubernetes Service, Azure Service Fabric

Oracle
Serviciu Cloud Nativ
OCI Container Engine for Kubernetes

Platform9
MSP
Kubernetes Gestionat

Red Hat
Serviciu Găzduit
OpenShift Dedicated & Online

VMware
Serviciu Găzduit
Cloud PKS (Beta)

Soluții Cloud Mail.ru*
Serviciu Cloud Nativ
Containere Cloud Mail.ru

* Nu ne vom ascunde, ne-am adăugat singuri aici la traducere 🙂

Furnizorii de clouduri publice adaugă, de asemenea, noi funcționalități și lansează produse locale. În viitorul apropiat, furnizorii de clouduri vor dezvolta suport pentru clouduri hibride și medii multi-cloud. 

Recomandările Gartner:

  1. Evaluați obiectiv capacitățile organizației dumneavoastră de a desfășura și gestiona instrumentele corespunzătoare și luați în considerare servicii alternative de gestionare a containerelor cloud.
  2. Alegeți cu atenție software-ul, utilizați open source acolo unde este posibil.
  3. Alegeți furnizori cu modele operaționale unificate în medii hibride, care oferă gestionarea clusterelor integrate dintr-un singur panou, precum și furnizori care facilitează utilizarea autonomă a IaaS.

Câteva sfaturi pentru alegerea unui furnizor Kubernetes aaS din blogul Replex:

  1. Este indicat să căutați distribuții care oferă disponibilitate ridicată din cutie. Aceasta include suport pentru mai multe arhitecturi principale, componente etcd cu înaltă disponibilitate, precum și backup și restaurare.
  2. Pentru a asigura mobilitatea mediilor Kubernetes, este mai bine să alegeți furnizori cloud care suportă o gamă largă de modele de desfășurare: de la locale la hibride și multi-cloud. 
  3. Oferta furnizorilor ar trebui evaluată și în funcție de ușurința de configurare, instalare și creare a clusterului, dar și de actualizări, monitorizare și depanare. Cerința de bază este suportul pentru actualizări complet automatizate ale clusterului fără timp de nefuncționare. Soluția aleasă ar trebui să permită, de asemenea, inițierea manuală a actualizărilor. 
  4. Gestionarea identității și accesului este importantă atât din punct de vedere al securității, cât și din perspectiva gestionării. Asigurați-vă că distribuția aleasă Kubernetes suportă integrarea cu instrumentele de autentificare și autorizare utilizate în cadrul companiei. RBAC și controlul detaliat al accesului sunt, de asemenea, seturi funcționale importante.
  5. Distribuția aleasă trebuie să aibă fie o soluție de rețea proprie, definită de software și care să acopere o gamă largă de cerințe impuse de diverse aplicații sau infrastructură, fie să sprijine una dintre implementările populare ale rețelelor bazate pe CNI, inclusiv Flannel, Calico, kube-router sau OVN.

Implementarea containerelor în producție devine o direcție principală, așa cum arată rezultatele unui sondaj realizat la sesiunea Gartner privind infrastructura, operațiunile și strategiile cloud (IOCS) în decembrie 2018:

Cele mai bune practici și recomandări pentru lansarea containerelor și Kubernetes în medii de producție
După cum observăm, 27% dintre respondenți folosesc deja containere în activitatea lor, iar 63% intenționează să facă acest lucru.

În în sondajul realizat de Portworx și Aqua Security 24% dintre respondenți au raportat că investesc mai mult de jumătate de milion de dolari pe an în tehnologii de containere, iar 17% dintre respondenți cheltuiesc mai mult de un milion de dolari pe an pentru acestea. 

Articolul a fost pregătit de echipa platformei cloud Soluții Cloud Mail.ru.

What else to read on the topic:

  1. Cele mai bune practici DevOps: raport DORA.
  2. Kubernetes in the spirit of piracy with an implementation template.
  3. 25 de instrumente utile pentru desfășurarea și implementarea Kubernetes.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster