Beste praksis og beste praksis for å kjøre containere og Kubernetes i produksjonsmiljøer

Beste praksis og beste praksis for å kjøre containere og Kubernetes i produksjonsmiljøer
Containeriseringsteknologiens økosystem er i rask utvikling og endring, så det er mangel på god arbeidspraksis på dette området. Kubernetes og containere brukes imidlertid i økende grad, både for å modernisere eldre applikasjoner og for å utvikle moderne skyapplikasjoner. 

Lag Kubernetes aaS fra Mail.ru samlet inn prognoser, råd og beste praksis for markedsledere fra Gartner, 451 Research, StacxRoх og andre. De vil muliggjøre og akselerere distribusjon av containere i produksjonsmiljøer.

Hvordan vite om bedriften din er klar til å distribuere containere i et produksjonsmiljø

Ifølge Gartner, i 2022 vil mer enn 75 % av organisasjonene bruke containeriserte applikasjoner i produksjonen. Dette er betydelig mer enn i dag, når mindre enn 30 % av bedriftene bruker slike applikasjoner. 

Ifølge 451 ForskningDet anslåtte markedet for containerteknologiapplikasjoner i 2022 vil være 4,3 milliarder dollar. Dette er mer enn det dobbelte av beløpet som ble anslått i 2019, med en markedsvekst på 30 %.

В Portworx og Aqua Security undersøkelse 87 % av de spurte sa at de for tiden bruker containerteknologi. Til sammenligning var det i 2017 55 % av slike respondenter. 

Til tross for den økende interessen og bruken av containere, krever det en læringskurve å få dem i produksjon på grunn av teknologisk umodenhet og mangel på kunnskap. Organisasjoner må være realistiske når det gjelder forretningsprosesser som krever applikasjonsbeholderisering. IT-ledere bør vurdere om de har ferdighetene til å gå videre med behovet for å lære raskt. 

Gartner-eksperter Vi tror spørsmålene i bildet nedenfor vil hjelpe deg med å finne ut om du er klar til å distribuere containere i produksjon:

Beste praksis og beste praksis for å kjøre containere og Kubernetes i produksjonsmiljøer

De vanligste feilene ved bruk av containere i produksjonen

Organisasjoner undervurderer ofte innsatsen som kreves for å drive containere i produksjon. Gartner oppdaget Noen vanlige feil i kundescenarier ved bruk av containere i produksjonsmiljøer:

Beste praksis og beste praksis for å kjøre containere og Kubernetes i produksjonsmiljøer

Hvordan holde beholdere sikre

Sikkerhet kan ikke håndteres "senere". Det må bygges inn i DevOps-prosessen, og det er derfor det til og med finnes et spesielt begrep - DevSecOps. Organisasjoner må planlegge beskytte containermiljøet ditt gjennom hele utviklingslivssyklusen, som inkluderer bygge- og utviklingsprosessen, distribusjon og lansering av applikasjonen.

Anbefalinger fra Gartner

  1. Integrer prosessen med å skanne applikasjonsbilder for sårbarheter i rørledningen for kontinuerlig integrering/kontinuerlig levering (CI/CD). Applikasjoner skannes på programvarebyggings- og lanseringsstadiene. Understrek behovet for å skanne og identifisere åpen kildekodekomponenter, biblioteker og rammeverk. Utviklere som bruker gamle, sårbare versjoner er en av hovedårsakene til containersårbarheter.
  2. Forbedre konfigurasjonen med Center for Internet Security-tester (CIS), som er tilgjengelig for både Docker og Kubernetes.
  3. Sørg for å håndheve tilgangskontroller, sørg for separasjon av oppgaver og implementer en policy for hemmeligheter. Sensitiv informasjon, som Secure Sockets Layer (SSL)-nøkler eller databaselegitimasjon, krypteres av orkestratoren eller tredjeparts administrasjonstjenester og avsløres under kjøring
  4. Unngå forhøyede beholdere ved å administrere sikkerhetspolicyer for å redusere potensielle bruddrisikoer.
  5. Bruk sikkerhetsverktøy som gir hviteliste, atferdsovervåking og avviksdeteksjon for å forhindre ondsinnet aktivitet.

Anbefalinger fra StacxRox:

  1. Utnytt de innebygde egenskapene til Kubernetes. Sett opp tilgang for brukere som bruker roller. Pass på at du ikke gir unødvendige tillatelser til individuelle enheter, selv om det kan ta litt tid å tenke gjennom minimumstillatelsene som kreves. Det kan være fristende å gi klyngeadministratoren brede privilegier, da dette sparer tid i starten. Imidlertid kan ethvert kompromiss eller feil på kontoen føre til ødeleggende konsekvenser senere. 
  2. Unngå dupliserte tilgangstillatelser. Noen ganger kan det være nyttig å ha ulike roller som overlapper hverandre, men dette kan føre til driftsproblemer og også skape blindsoner ved fjerning av tillatelser. Det er også viktig å fjerne ubrukte og inaktive roller.
  3. Angi nettverkspolicyer: isoler moduler for å begrense tilgangen til dem; tillate eksplisitt Internett-tilgang til de modulene som trenger det ved å bruke tagger; Tillat eksplisitt kommunikasjon mellom de modulene som må kommunisere med hverandre. 

Hvordan organisere overvåking av containere og tjenester i dem

Sikkerhet og overvåking - selskapers hovedproblemer når du distribuerer Kubernetes-klynger. Utviklere er alltid mer fokusert på funksjonene til applikasjonene de utvikler i stedet for aspektene overvåking av disse applikasjonene

Anbefalinger fra Gartner:

  1. Prøv å overvåke tilstanden til containere eller tjenester i dem i forbindelse med overvåking av vertssystemer.
  2. Se etter leverandører og verktøy med dyp integrasjon i containerorkestrering, spesielt Kubernetes.
  3. Velg verktøy som gir detaljert logging, automatisk tjenesteoppdagelse og sanntidsanbefalinger ved hjelp av analyser og/eller maskinlæring.

SolarWinds-bloggen gir råd:

  1. Bruk verktøy for å automatisk oppdage og spore containerberegninger, korrelere ytelsesberegninger som CPU, minne og oppetid.
  2. Sikre optimal kapasitetsplanlegging ved å forutsi kapasitetsuttømmingsdatoer basert på beholderovervåkingsberegninger.
  3. Overvåk containeriserte applikasjoner for tilgjengelighet og ytelse, nyttig for både kapasitetsplanlegging og feilsøking av ytelsesproblemer.
  4. Automatiser arbeidsflyter ved å tilby administrasjons- og skaleringsstøtte for containere og deres vertsmiljøer.
  5. Automatiser tilgangskontroll for å overvåke brukerbasen din, deaktiver foreldede kontoer og gjestekontoer og fjern unødvendige privilegier.
  6. Sørg for at verktøysettet ditt kan overvåke disse beholderne og applikasjonene på tvers av flere miljøer (sky, lokale eller hybrid) for å visualisere og måle ytelse på tvers av infrastruktur, nettverk, systemer og applikasjoner.

Hvordan lagre data og sikre sikkerheten

Med fremveksten av stateful worker containers, må klienter vurdere tilstedeværelsen av data utenfor verten og behovet for å beskytte disse dataene. 

Ifølge Portworx og Aqua Security undersøkelse, datasikkerhet topper listen over sikkerhetsproblemer som er sitert av flertallet av respondentene (61 %). 

Datakryptering er hovedsikkerhetsstrategien (64 %), men respondentene bruker også kjøretidsovervåking

(49%), skanning av registre for sårbarheter (49%), skanning for sårbarheter i CI/CD-pipelines (49%), og blokkering av uregelmessigheter gjennom kjøretidsbeskyttelse (48%).

Anbefalinger fra Gartner:

  1. Velg oppbevaringsløsninger bygget på prinsipper mikrotjenestearkitektur. Det er bedre å fokusere på de som oppfyller datalagringskravene for containertjenester, er maskinvareuavhengige, API-drevne, har en distribuert arkitektur, støtter lokal distribusjon og distribusjon i den offentlige skyen.
  2. Unngå proprietære plugins og grensesnitt. Velg leverandører som tilbyr Kubernetes-integrasjon og støtter standardgrensesnitt som CSI (Container Storage Interfaces).

Hvordan jobbe med nettverk

Den tradisjonelle bedriftsnettverksmodellen, der IT-team skaper nettverksbasert utvikling, testing, kvalitetssikring og produksjonsmiljøer for hvert prosjekt, passer ikke alltid godt med den kontinuerlige utviklingsarbeidsflyten. I tillegg spenner containernettverk over flere lag.

В blogg Magalix samlet høynivåregler som implementeringen av en klyngenettverksløsning må overholde:

  1. Poder som er planlagt på samme node, må kunne kommunisere med andre poder uten å bruke NAT (Network Address Translation).
  2. Alle systemdemoner (bakgrunnsprosesser som kubelet) som kjører på en bestemt node kan kommunisere med pods som kjører på samme node.
  3. Poder bruker vertsnettverk, må kunne kommunisere med alle andre poder på alle andre noder uten å bruke NAT. Vær oppmerksom på at vertsnettverk kun støttes på Linux-verter.

Nettverksløsninger må være tett integrert med Kubernetes primitiver og retningslinjer. IT-ledere bør etterstrebe en høy grad av nettverksautomatisering og gi utviklere de riktige verktøyene og tilstrekkelig fleksibilitet.

Anbefalinger fra Gartner:

  1. Finn ut om din CaaS (container as a service) eller din SDN (Software Defined Network) støtter Kubernetes-nettverk. Hvis ikke eller støtten er utilstrekkelig, bruk CNI (Container Network Interface) nettverksgrensesnitt for containerne dine, som støtter nødvendig funksjonalitet og policyer.
  2. Sørg for at CaaS eller PaaS (plattform som en tjeneste) støtter oppretting av ingress-kontrollere og/eller lastbalansere som distribuerer innkommende trafikk mellom klyngenoder. Hvis dette ikke er et alternativ, kan du utforske bruken av tredjeparts proxyer eller tjenestenettverk.
  3. Tren nettverksingeniørene dine på Linux-nettverk og nettverksautomatiseringsverktøy for å redusere kompetansegapet og øke smidigheten.

Hvordan administrere applikasjonens livssyklus

For automatisert og sømløs applikasjonslevering må du komplettere containerorkestrering med andre automatiseringsverktøy, for eksempel infrastruktur som kode (IaC)-produkter. Disse inkluderer Chef, Puppet, Ansible og Terraform. 

Automatiseringsverktøy for å bygge og rulle ut applikasjoner er også nødvendig (se "Magic Quadrant for Application Release Orchestration"). Beholdere gir også utvidelsesmuligheter som ligner på de som er tilgjengelige når du distribuerer virtuelle maskiner (VM). Derfor må IT-ledere ha verktøy for livssyklusstyring for containere.

Anbefalinger fra Gartner:

  1. Sett standarder for basisbeholderbilder basert på størrelse, lisensiering og fleksibilitet for utviklere å legge til komponenter.
  2. Bruk konfigurasjonsadministrasjonssystemer for å administrere livssyklusen til containere som lagkonfigurasjon basert på basisbilder som er plassert i offentlige eller private depoter.
  3. Integrer CaaS-plattformen din med automatiseringsverktøy for å automatisere hele applikasjonsarbeidsflyten.

Hvordan administrere containere med orkestratorer

Kjernefunksjonaliteten for utplassering av containere tilbys på orkestrerings- og planleggingslagene. Under planlegging plasseres containere på de mest optimale vertene i klyngen, som diktert av kravene til orkestreringslaget. 

Kubernetes har blitt de facto containerorkestreringsstandarden med et aktivt fellesskap og støttes av de fleste ledende kommersielle leverandører. 

Anbefalinger fra Gartner:

  1. Definer grunnleggende krav for sikkerhetskontroller, overvåking, policyadministrasjon, datapersistens, nettverks- og containerlivssyklusadministrasjon.
  2. Basert på disse kravene, velg det verktøyet som passer best for dine krav og brukstilfeller.
  3. Bruk Gartner-undersøkelser (se "Hvordan velge en Kubernetes-implementeringsmodell") for å forstå fordelene og ulempene med forskjellige Kubernetes-implementeringsmodeller og velge den beste for applikasjonen din.
  4. Velg en leverandør som kan tilby hybrid orkestrering for arbeidscontainere på tvers av flere miljøer med tett backend-integrasjon, vanlige administrasjonsplaner og konsekvente prismodeller.

Slik bruker du mulighetene til skyleverandører

mener Gartnerat interessen for å distribuere containere på offentlig sky IaaS vokser på grunn av tilgjengeligheten av ferdige CaaS-tilbud, samt den tette integrasjonen av disse tilbudene med andre produkter som tilbys av skyleverandører.

IaaS-skyer tilbyr ressursforbruk på forespørsel, rask skalerbarhet og tjenesteadministrasjon, som vil bidra til å unngå behovet for inngående kunnskap om infrastrukturen og vedlikeholdet av den. De fleste skyleverandører tilbyr en containeradministrasjonstjeneste, og noen tilbyr flere orkestreringsalternativer. 

Viktige skyadministrerte tjenesteleverandører er presentert i tabellen: 

Skyleverandør
Tjenestetype
Produkt/tjeneste

Alibaba
Native Cloud Service
Alibaba Cloud Container Service, Alibaba Cloud Container Service for Kubernetes

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

Kjempesverm
MSP
Giant Swarm Managed Kubernetes Infrastructure

Google
Native Cloud Service
Google Container Engine (GKE)

IBM
Native Cloud Service
IBM Cloud Kubernetes-tjeneste

Microsoft
Native Cloud Service
Azure Kubernetes Service, Azure Service Fabric

Oracle
Native Cloud Service
OCI Container Engine for Kubernetes

Platform9
MSP
Administrerte Kubernetes

Red Hat
Vertsbasert tjeneste
OpenShift dedikert og online

VMware
Vertsbasert tjeneste
Cloud PKS (beta)

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

* Vi vil ikke skjule det, vi la til oss selv her under oversettelsen :)

Offentlige skyleverandører legger også til nye funksjoner og slipper lokale produkter. I nær fremtid vil skyleverandører utvikle støtte for hybridskyer og multiskymiljøer. 

Gartner-anbefalinger:

  1. Evaluer objektivt organisasjonens evne til å distribuere og administrere passende verktøy, og vurder alternative skybeholderadministrasjonstjenester.
  2. Velg programvare med omhu, bruk åpen kildekode der det er mulig.
  3. Velg leverandører med vanlige driftsmodeller i hybridmiljøer som tilbyr enkeltrutebehandling av forente klynger, samt leverandører som gjør det enkelt å være vert for IaaS selv.

Noen tips for å velge en Kubernetes aaS-leverandør fra Replex-bloggen:

  1. Det er verdt å se etter distribusjoner som støtter høy tilgjengelighet ut av esken. Dette inkluderer støtte for flere store arkitekturer, høyt tilgjengelige etcd-komponenter og sikkerhetskopiering og gjenoppretting.
  2. For å sikre mobilitet i Kubernetes-miljøene dine, er det best å velge skyleverandører som støtter et bredt spekter av distribusjonsmodeller, fra lokalt til hybrid til multisky. 
  3. Leverandørtilbud bør også evalueres basert på enkel oppsett, installasjon og klyngeoppretting, samt oppdateringer, overvåking og feilsøking. Det grunnleggende kravet er å støtte helautomatiske klyngeoppdateringer med null nedetid. Løsningen du velger bør også tillate deg å kjøre oppdateringer manuelt. 
  4. Identitets- og tilgangsstyring er viktig både fra et sikkerhets- og styringsperspektiv. Sørg for at Kubernetes-distribusjonen du velger støtter integrasjon med autentiserings- og autorisasjonsverktøyene du bruker internt. RBAC og finmasket adgangskontroll er også viktige funksjonssett.
  5. Distribusjonen du velger må enten ha en innebygd programvaredefinert nettverksløsning som dekker et bredt spekter av forskjellige applikasjons- eller infrastrukturkrav, eller støtte en av de populære CNI-baserte nettverksimplementeringene, inkludert Flannel, Calico, kube-router eller OVN.

Introduksjonen av containere i produksjon er i ferd med å bli hovedretningen, noe som fremgår av resultatene fra en undersøkelse utført på Gartner økter om infrastruktur, drift og skystrategier (IOCS) i desember 2018:

Beste praksis og beste praksis for å kjøre containere og Kubernetes i produksjonsmiljøer
Som du kan se, bruker 27 % av respondentene allerede containere i arbeidet sitt, og 63 % planlegger å gjøre det.

В Portworx og Aqua Security undersøkelse 24 % av respondentene rapporterte å investere mer enn en halv million dollar per år på containerteknologi, og 17 % av respondentene brukte mer enn en million dollar per år på dem. 

Artikkel utarbeidet av skyplattformteamet Mail.ru skyløsninger.

Hva annet å lese om emnet:

  1. DevOps beste praksis: DORA-rapport.
  2. Kubernetes i piratkopieringens ånd med en mal for implementering.
  3. 25 Nyttige verktøy for Kubernetes-distribusjon og bruk.

Kilde: www.habr.com

Legg til en kommentar