ProHoster > Log > administrasjon > 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:
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:
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.
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.
Forbedre konfigurasjonen med Center for Internet Security-tester (CIS), som er tilgjengelig for både Docker og Kubernetes.
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
Unngå forhøyede beholdere ved å administrere sikkerhetspolicyer for å redusere potensielle bruddrisikoer.
Bruk sikkerhetsverktøy som gir hviteliste, atferdsovervåking og avviksdeteksjon for å forhindre ondsinnet aktivitet.
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.
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.
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
Bruk verktøy for å automatisk oppdage og spore containerberegninger, korrelere ytelsesberegninger som CPU, minne og oppetid.
Sikre optimal kapasitetsplanlegging ved å forutsi kapasitetsuttømmingsdatoer basert på beholderovervåkingsberegninger.
Overvåk containeriserte applikasjoner for tilgjengelighet og ytelse, nyttig for både kapasitetsplanlegging og feilsøking av ytelsesproblemer.
Automatiser arbeidsflyter ved å tilby administrasjons- og skaleringsstøtte for containere og deres vertsmiljøer.
Automatiser tilgangskontroll for å overvåke brukerbasen din, deaktiver foreldede kontoer og gjestekontoer og fjern unødvendige privilegier.
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%).
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.
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:
Poder som er planlagt på samme node, må kunne kommunisere med andre poder uten å bruke NAT (Network Address Translation).
Alle systemdemoner (bakgrunnsprosesser som kubelet) som kjører på en bestemt node kan kommunisere med pods som kjører på samme node.
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.
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.
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.
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.
Sett standarder for basisbeholderbilder basert på størrelse, lisensiering og fleksibilitet for utviklere å legge til komponenter.
Bruk konfigurasjonsadministrasjonssystemer for å administrere livssyklusen til containere som lagkonfigurasjon basert på basisbilder som er plassert i offentlige eller private depoter.
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.
Definer grunnleggende krav for sikkerhetskontroller, overvåking, policyadministrasjon, datapersistens, nettverks- og containerlivssyklusadministrasjon.
Basert på disse kravene, velg det verktøyet som passer best for dine krav og brukstilfeller.
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.
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
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.
Evaluer objektivt organisasjonens evne til å distribuere og administrere passende verktøy, og vurder alternative skybeholderadministrasjonstjenester.
Velg programvare med omhu, bruk åpen kildekode der det er mulig.
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.
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.
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.
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.
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.
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:
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.