Best Practices og Best Practices for at køre containere og Kubernetes i produktionsmiljøer

Best Practices og Best Practices for at køre containere og Kubernetes i produktionsmiljøer
Containeriseringsteknologiens økosystem udvikler sig hurtigt og ændrer sig, så der er mangel på god arbejdspraksis på dette område. Kubernetes og containere bliver dog brugt i stigende grad, både til at modernisere legacy-applikationer og til at udvikle moderne cloud-applikationer. 

Team Kubernetes aaS fra Mail.ru indsamlede prognoser, råd og bedste praksis for markedsledere fra Gartner, 451 Research, StacxRoх og andre. De vil muliggøre og fremskynde udrulningen af ​​containere i produktionsmiljøer.

Sådan ved du, om din virksomhed er klar til at implementere containere i et produktionsmiljø

Ifølge Gartner, i 2022 vil mere end 75 % af organisationerne bruge containeriserede applikationer i produktionen. Det er markant flere end i øjeblikket, hvor mindre end 30 % af virksomhederne bruger sådanne applikationer. 

Ifølge 451 ResearchDet forventede marked for containerteknologiapplikationer i 2022 vil være 4,3 milliarder USD. Dette er mere end det dobbelte af det forventede beløb i 2019 med en markedsvækst på 30 %.

В Portworx og Aqua Security undersøgelse 87 % af de adspurgte sagde, at de i øjeblikket bruger containerteknologier. Til sammenligning var der i 2017 55 % af sådanne respondenter. 

På trods af den stigende interesse og adoption af containere, kræver det en indlæringskurve at få dem i produktion på grund af teknologisk umodenhed og mangel på knowhow. Organisationer skal være realistiske med hensyn til forretningsprocesser, der kræver applikationscontainerisering. IT-ledere bør vurdere, om de har kompetencerne til at komme videre med behovet for at lære hurtigt. 

Gartner eksperter Vi tror, ​​at spørgsmålene på billedet nedenfor vil hjælpe dig med at afgøre, om du er klar til at implementere containere i produktionen:

Best Practices og Best Practices for at køre containere og Kubernetes i produktionsmiljøer

De mest almindelige fejl ved brug af containere i produktionen

Organisationer undervurderer ofte den indsats, der kræves for at drive containere i produktionen. Gartner opdagede Nogle almindelige fejl i kundescenarier ved brug af containere i produktionsmiljøer:

Best Practices og Best Practices for at køre containere og Kubernetes i produktionsmiljøer

Sådan holder du beholdere sikre

Sikkerhed kan ikke behandles "senere". Det skal indbygges i DevOps-processen, hvorfor der endda findes et særligt udtryk – DevSecOps. Organisationer skal planlægge beskytte dit containermiljø gennem hele udviklingens livscyklus, som omfatter bygge- og udviklingsprocessen, implementering og lancering af applikationen.

Anbefalinger fra Gartner

  1. Integrer processen med at scanne applikationsbilleder for sårbarheder i din pipeline for kontinuerlig integration/kontinuerlig levering (CI/CD). Applikationer scannes på softwareopbygnings- og lanceringsstadierne. Understreg behovet for at scanne og identificere open source-komponenter, biblioteker og rammer. Udviklere, der bruger gamle, sårbare versioner er en af ​​hovedårsagerne til containersårbarheder.
  2. Forbedre din konfiguration med Center for Internet Security-tests (CIS), som er tilgængelige for både Docker og Kubernetes.
  3. Sørg for at håndhæve adgangskontrol, sikre adskillelse af opgaver og implementere en hemmelighedsstyringspolitik. Følsomme oplysninger, såsom Secure Sockets Layer (SSL) nøgler eller databaselegitimationsoplysninger, krypteres af orkestratoren eller tredjeparts administrationstjenester og afsløres under kørsel
  4. Undgå forhøjede containere ved at administrere sikkerhedspolitikker for at reducere potentielle brudrisici.
  5. Brug sikkerhedsværktøjer, der giver hvidlistning, adfærdsovervågning og registrering af anomalier for at forhindre ondsindet aktivitet.

Anbefalinger fra StacxRox:

  1. Udnyt de indbyggede muligheder i Kubernetes. Konfigurer adgang for brugere, der bruger roller. Sørg for, at du ikke giver unødvendige tilladelser til individuelle enheder, selvom det kan tage lidt tid at gennemtænke de krævede minimumstilladelser. Det kan være fristende at give klyngeadministratoren brede privilegier, da dette sparer tid i starten. Ethvert kompromis eller fejl på kontoen kan dog føre til ødelæggende konsekvenser senere hen. 
  2. Undgå duplikatadgangstilladelser. Det kan nogle gange være nyttigt at have forskellige roller overlappende, men det kan føre til driftsproblemer og også skabe blinde vinkler, når tilladelser fjernes. Det er også vigtigt at fjerne ubrugte og inaktive roller.
  3. Indstil netværkspolitikker: isoler moduler for at begrænse adgangen til dem; tillade eksplicit internetadgang til de moduler, der har brug for det ved hjælp af tags; Tillad eksplicit kommunikation mellem de moduler, der skal kommunikere med hinanden. 

Hvordan man organiserer overvågning af containere og tjenester i dem

Sikkerhed og overvågning - virksomheders hovedproblemer når du implementerer Kubernetes-klynger. Udviklere er altid mere fokuserede på funktionerne i de applikationer, de udvikler, snarere end aspekterne overvågning af disse applikationer

Anbefalinger fra Gartner:

  1. Prøv at overvåge tilstanden af ​​containere eller tjenester i dem i forbindelse med overvågning af værtssystemer.
  2. Se efter leverandører og værktøjer med dyb integration i containerorkestrering, især Kubernetes.
  3. Vælg værktøjer, der giver detaljeret logning, automatisk serviceopdagelse og anbefalinger i realtid ved hjælp af analyser og/eller maskinlæring.

SolarWinds-bloggen rådgiver:

  1. Brug værktøjer til automatisk at opdage og spore containermålinger, der korrelerer ydeevnemålinger såsom CPU, hukommelse og oppetid.
  2. Sikre optimal kapacitetsplanlægning ved at forudsige kapacitetsudtømningsdatoer baseret på containerovervågningsmetrikker.
  3. Overvåg containeriserede applikationer for tilgængelighed og ydeevne, nyttigt til både kapacitetsplanlægning og fejlfinding af ydeevneproblemer.
  4. Automatiser arbejdsgange ved at levere administrations- og skaleringssupport til containere og deres hostingmiljøer.
  5. Automatiser adgangskontrol for at overvåge din brugerbase, deaktiver forældede konti og gæstekonti og fjern unødvendige privilegier.
  6. Sørg for, at dit værktøjssæt kan overvåge disse containere og applikationer på tværs af flere miljøer (cloud, on-premises eller hybrid) for at visualisere og benchmarke ydeevne på tværs af infrastruktur, netværk, systemer og applikationer.

Hvordan man opbevarer data og sikrer dets sikkerhed

Med fremkomsten af ​​stateful worker-containere skal klienter overveje tilstedeværelsen af ​​data uden for værten og behovet for at beskytte disse data. 

Ifølge Portworx og Aqua Security undersøgelse, er datasikkerhed øverst på listen over sikkerhedsproblemer, der nævnes af flertallet af respondenterne (61%). 

Datakryptering er den vigtigste sikkerhedsstrategi (64%), men respondenterne bruger også runtime-overvågning

(49 %), scanning af registre for sårbarheder (49 %), scanning for sårbarheder i CI/CD-pipelines (49 %) og blokering af anomalier gennem runtime-beskyttelse (48 %).

Anbefalinger fra Gartner:

  1. Vælg opbevaringsløsninger bygget på principper mikroservicearkitektur. Det er bedre at fokusere på dem, der opfylder datalagringskravene til containertjenester, er hardwareuafhængige, API-drevne, har en distribueret arkitektur, understøtter lokal udrulning og udrulning i den offentlige sky.
  2. Undgå proprietære plugins og grænseflader. Vælg leverandører, der leverer Kubernetes-integration og understøtter standardgrænseflader såsom CSI (Container Storage Interfaces).

Sådan arbejder du med netværk

Den traditionelle virksomhedsnetværksmodel, hvor it-teams skaber netværksbaserede udviklings-, test-, kvalitetssikrings- og produktionsmiljøer for hvert projekt, passer ikke altid godt til den kontinuerlige udviklingsarbejdsgang. Derudover spænder containernetværk over flere lag.

В blog Magalix samlet regler på højt niveau, som implementeringen af ​​en klyngenetværksløsning skal overholde:

  1. Pods, der er planlagt på den samme node, skal kunne kommunikere med andre pods uden at bruge NAT (Network Address Translation).
  2. Alle systemdæmoner (baggrundsprocesser såsom kubelet), der kører på en bestemt node, kan kommunikere med pods, der kører på den samme node.
  3. Bælge bruger værtsnetværk, skal kunne kommunikere med alle andre pods på alle andre noder uden brug af NAT. Bemærk venligst, at værtsnetværk kun understøttes på Linux-værter.

Netværksløsninger skal være tæt integreret med Kubernetes primitiver og politikker. IT-ledere bør stræbe efter en høj grad af netværksautomatisering og give udviklere de rigtige værktøjer og tilstrækkelig fleksibilitet.

Anbefalinger fra Gartner:

  1. Find ud af, om dit CaaS (container som en tjeneste) eller dit SDN-netværk (Software Defined Network) understøtter Kubernetes-netværk. Hvis ikke eller support er utilstrækkelig, skal du bruge CNI-netværksgrænsefladen (Container Network Interface) til dine containere, som understøtter den nødvendige funktionalitet og politikker.
  2. Sørg for, at din CaaS eller PaaS (platform som en service) understøtter oprettelsen af ​​indgangscontrollere og/eller belastningsbalancere, der distribuerer indgående trafik mellem klynge noder. Hvis dette ikke er en mulighed, kan du udforske brugen af ​​tredjeparts proxyer eller servicemasker.
  3. Træn dine netværksingeniører i Linux-netværk og netværksautomatiseringsværktøjer for at reducere kløften og øge smidigheden.

Sådan administrerer du applikationens livscyklus

For automatiseret og problemfri applikationslevering skal du supplere containerorkestrering med andre automatiseringsværktøjer, såsom infrastruktur som kode (IaC) produkter. Disse omfatter Chef, Puppet, Ansible og Terraform. 

Automatiseringsværktøjer til opbygning og udrulning af applikationer er også påkrævet (se "Magic Quadrant for Application Release Orchestration"). Containere giver også udvidelsesmuligheder svarende til dem, der er tilgængelige ved implementering af virtuelle maskiner (VM'er). Derfor skal it-ledere have værktøjer til håndtering af containers livscyklus.

Anbefalinger fra Gartner:

  1. Indstil standarder for basisbeholderbilleder baseret på størrelse, licenser og fleksibilitet for udviklere til at tilføje komponenter.
  2. Brug konfigurationsstyringssystemer til at administrere livscyklussen for containere, der lagkonfiguration baseret på basisbilleder placeret i offentlige eller private lagre.
  3. Integrer din CaaS-platform med automatiseringsværktøjer for at automatisere hele dit applikationsworkflow.

Sådan administreres containere med orkestratorer

Kernefunktionaliteten til udrulning af containere findes på orkestrerings- og planlægningslagene. Under planlægningen placeres containere på de mest optimale værter i klyngen, som dikteret af kravene til orkestreringslaget. 

Kubernetes er blevet de facto containerorkestreringsstandard med et aktivt fællesskab og understøttes af de fleste førende kommercielle leverandører. 

Anbefalinger fra Gartner:

  1. Definer grundlæggende krav til sikkerhedskontrol, overvågning, politikstyring, datapersistens, netværk og containerlivscyklusstyring.
  2. Ud fra disse krav skal du vælge det værktøj, der passer bedst til dine krav og anvendelsesmuligheder.
  3. Brug Gartner research (se "Sådan vælger du en Kubernetes-implementeringsmodel") for at forstå fordele og ulemper ved forskellige Kubernetes-implementeringsmodeller og vælge den bedste til din applikation.
  4. Vælg en udbyder, der kan levere hybrid orkestrering til arbejdscontainere på tværs af flere miljøer med stram backend-integration, fælles administrationsplaner og ensartede prismodeller.

Sådan bruger du mulighederne hos cloud-udbydere

Gartner menerat interessen for at implementere containere på public cloud IaaS vokser på grund af tilgængeligheden af ​​færdige CaaS-tilbud, samt den tætte integration af disse tilbud med andre produkter, der tilbydes af cloud-udbydere.

IaaS-skyer tilbyder on-demand ressourceforbrug, hurtig skalerbarhed og service management, hvilket vil være med til at undgå behovet for indgående kendskab til infrastrukturen og dens vedligeholdelse. De fleste cloud-udbydere tilbyder en containerstyringstjeneste, og nogle tilbyder flere orkestreringsmuligheder. 

Vigtige cloud-administrerede tjenesteudbydere er præsenteret i tabellen: 

Cloud udbyder
Servicetype
Produkt/service

Alibaba
Native Cloud Service
Alibaba Cloud Container Service, Alibaba Cloud Container Service til Kubernetes

Amazon Web Services (AWS)
Native Cloud Service
Amazon Elastic Container Services (ECS), Amazon ECS for Kubernetes (EKS), AWS Fargate

Kæmpe sværm
MSP
Giant Swarm Managed Kubernetes Infrastructure

Google
Native Cloud Service
Google Container Engine (GKE)

IBM
Native Cloud Service
IBM Cloud Kubernetes Service

microsoft
Native Cloud Service
Azure Kubernetes Service, Azure Service Fabric

Oracle
Native Cloud Service
OCI Container Engine til Kubernetes

Platform9
MSP
Administreret Kubernetes

Red Hat
Hosted Service
OpenShift Dedikeret & Online

VMware
Hosted Service
Cloud PKS (Beta)

Mail.ru Cloud Solutions*
Native Cloud Service
Mail.ru Cloud-containere

* Vi vil ikke skjule det, vi tilføjede os selv her under oversættelsen :)

Offentlige cloud-udbydere tilføjer også nye muligheder og frigiver produkter på stedet. I den nærmeste fremtid vil cloud-udbydere udvikle support til hybridskyer og multi-cloud-miljøer. 

Gartner anbefalinger:

  1. Evaluer objektivt din organisations evne til at implementere og administrere passende værktøjer, og overvej alternative cloud-beholderadministrationstjenester.
  2. Vælg software med omhu, brug open source, hvor det er muligt.
  3. Vælg udbydere med almindelige driftsmodeller i hybride miljøer, der tilbyder enkelt rudestyring af forbundne klynger, samt udbydere, der gør det nemt at selv hoste IaaS.

Nogle tips til at vælge en Kubernetes aaS-udbyder fra Replex-bloggen:

  1. Det er værd at lede efter distributioner, der understøtter høj tilgængelighed ud af boksen. Dette inkluderer understøttelse af flere større arkitekturer, højt tilgængelige etcd-komponenter og backup og gendannelse.
  2. For at sikre mobilitet i dine Kubernetes-miljøer er det bedst at vælge cloud-udbydere, der understøtter en bred vifte af implementeringsmodeller, fra lokalt til hybrid til multi-sky. 
  3. Udbyderens tilbud bør også evalueres baseret på nem opsætning, installation og oprettelse af klynge samt opdateringer, overvågning og fejlfinding. Det grundlæggende krav er at understøtte fuldautomatiske klyngeopdateringer uden nedetid. Den løsning, du vælger, bør også give dig mulighed for at køre opdateringer manuelt. 
  4. Identitets- og adgangsstyring er vigtig fra både et sikkerheds- og styringsperspektiv. Sørg for, at den Kubernetes-distribution, du vælger, understøtter integration med de godkendelses- og autorisationsværktøjer, du bruger internt. RBAC og finkornet adgangskontrol er også vigtige funktionssæt.
  5. Den distribution, du vælger, skal enten have en indbygget softwaredefineret netværksløsning, der dækker en lang række forskellige applikations- eller infrastrukturkrav, eller understøtte en af ​​de populære CNI-baserede netværksimplementeringer, herunder Flannel, Calico, kube-router eller OVN.

Introduktionen af ​​containere i produktionen er ved at blive hovedretningen, som det fremgår af resultaterne af en undersøgelse foretaget på Gartner sessioner om infrastruktur, drift og cloud-strategier (IOCS) i december 2018:

Best Practices og Best Practices for at køre containere og Kubernetes i produktionsmiljøer
Som du kan se, bruger 27 % af respondenterne allerede containere i deres arbejde, og 63 % planlægger at gøre det.

В Portworx og Aqua Security undersøgelse 24 % af de adspurgte rapporterede, at de investerede mere end en halv million dollars om året på containerteknologier, og 17 % af respondenterne brugte mere end en million dollars om året på dem. 

Artikel udarbejdet af cloud platform-teamet Mail.ru Cloud-løsninger.

Hvad skal man ellers læse om emnet:

  1. DevOps bedste praksis: DORA-rapport.
  2. Kubernetes i pirateriets ånd med en skabelon til implementering.
  3. 25 Nyttige værktøjer til Kubernetes-implementering og -adoption.

Kilde: www.habr.com

Tilføj en kommentar