Bästa praxis och bästa praxis för att köra containrar och Kubernetes i produktionsmiljöer

Bästa praxis och bästa praxis för att köra containrar och Kubernetes i produktionsmiljöer
Containeriseringsteknologins ekosystem utvecklas och förändras snabbt, så det finns en brist på bra arbetsmetoder inom detta område. Kubernetes och behållare används dock allt mer, både för att modernisera äldre applikationer och för att utveckla moderna molnapplikationer. 

Team Kubernetes aaS från Mail.ru samlade in prognoser, råd och bästa praxis för marknadsledare från Gartner, 451 Research, StacxRoх och andra. De kommer att möjliggöra och påskynda distributionen av containrar i produktionsmiljöer.

Hur man vet om ditt företag är redo att distribuera containrar i en produktionsmiljö

Enligt Gartner2022 kommer mer än 75 % av organisationerna att använda containerbaserade applikationer i produktionen. Detta är betydligt fler än för närvarande, när mindre än 30 % av företagen använder sådana applikationer. 

Enligt 451 ForskningDen förväntade marknaden för containerteknologiapplikationer 2022 kommer att uppgå till 4,3 miljarder USD. Detta är mer än dubbelt så mycket som beräknats 2019, med en marknadstillväxt på 30 %.

В Portworx och Aqua Security undersökning 87 % av de tillfrågade sa att de för närvarande använder containerteknik. Som jämförelse, 2017 var det 55 % av dessa svarande. 

Trots det växande intresset och antagandet av containrar kräver att få dem i produktion en inlärningskurva på grund av teknisk omognad och brist på know-how. Organisationer måste vara realistiska om affärsprocesser som kräver applikationscontainerisering. IT-ledare bör utvärdera om de har kompetensen att gå vidare med behovet av att lära sig snabbt. 

Gartners experter Vi tror att frågorna i bilden nedan hjälper dig att avgöra om du är redo att distribuera containrar i produktionen:

Bästa praxis och bästa praxis för att köra containrar och Kubernetes i produktionsmiljöer

De vanligaste misstagen vid användning av behållare i produktionen

Organisationer underskattar ofta den ansträngning som krävs för att driva containrar i produktionen. Gartner upptäckte Några vanliga misstag i kundscenarier vid användning av behållare i produktionsmiljöer:

Bästa praxis och bästa praxis för att köra containrar och Kubernetes i produktionsmiljöer

Hur man håller behållare säkra

Säkerhet kan inte hanteras "senare". Det måste byggas in i DevOps-processen, varför det till och med finns en speciell term - DevSecOps. Organisationer måste planera skydda din containermiljö under hela utvecklingens livscykel, vilket inkluderar bygg- och utvecklingsprocessen, driftsättning och lansering av applikationen.

Rekommendationer från Gartner

  1. Integrera processen att skanna applikationsbilder efter sårbarheter i din pipeline för kontinuerlig integration/kontinuerlig leverans (CI/CD). Applikationer skannas i programbyggnads- och lanseringsstadierna. Betona behovet av att skanna och identifiera komponenter, bibliotek och ramverk med öppen källkod. Utvecklare som använder gamla, sårbara versioner är en av huvudorsakerna till containersårbarheter.
  2. Förbättra din konfiguration med Center for Internet Security-tester (CIS), som är tillgängliga för både Docker och Kubernetes.
  3. Se till att upprätthålla åtkomstkontroller, se till att arbetsuppgifterna är åtskilda och implementera en policy för hantering av hemligheter. Känslig information, såsom Secure Sockets Layer (SSL)-nycklar eller databasuppgifter, krypteras av orkestratorn eller tredjepartshanteringstjänster och exponeras under körning
  4. Undvik förhöjda behållare genom att hantera säkerhetspolicyer för att minska potentiella intrångsrisker.
  5. Använd säkerhetsverktyg som tillhandahåller vitlistning, beteendeövervakning och upptäckt av anomalier för att förhindra skadlig aktivitet.

Rekommendationer från StacxRox:

  1. Utnyttja de inbyggda funktionerna i Kubernetes. Ställ in åtkomst för användare som använder roller. Se till att du inte beviljar onödiga behörigheter till enskilda enheter, även om det kan ta lite tid att tänka igenom de minimibehörigheter som krävs. Det kan vara frestande att ge klusteradministratören breda privilegier eftersom detta sparar tid initialt. Men varje kompromiss eller misstag på kontot kan leda till förödande konsekvenser senare. 
  2. Undvik dubbletter av åtkomstbehörigheter. Det kan ibland vara användbart att ha olika roller som överlappar varandra, men det kan leda till driftsproblem och även skapa blinda fläckar när man tar bort behörigheter. Det är också viktigt att ta bort oanvända och inaktiva roller.
  3. Ställ in nätverkspolicyer: isolera moduler för att begränsa åtkomsten till dem; uttryckligen tillåta Internetåtkomst till de moduler som behöver det med hjälp av taggar; Tillåt uttryckligen kommunikation mellan de moduler som behöver kommunicera med varandra. 

Hur man organiserar övervakning av containrar och tjänster i dem

Säkerhet och övervakning - företagens huvudproblem när du distribuerar Kubernetes-kluster. Utvecklare är alltid mer fokuserade på funktionerna i de applikationer de utvecklar snarare än aspekterna övervaka dessa applikationer

Rekommendationer från Gartner:

  1. Försök att övervaka tillståndet för behållare eller tjänster i dem i samband med övervakning av värdsystem.
  2. Leta efter leverantörer och verktyg med djup integration i containerorkestrering, särskilt Kubernetes.
  3. Välj verktyg som ger detaljerad loggning, automatisk upptäckt av tjänster och rekommendationer i realtid med hjälp av analyser och/eller maskininlärning.

SolarWinds-bloggen ger råd:

  1. Använd verktyg för att automatiskt upptäcka och spåra containerstatistik, korrelera prestandamått som CPU, minne och drifttid.
  2. Säkerställ optimal kapacitetsplanering genom att förutsäga kapacitetsutarmningsdatum baserat på containerövervakningsstatistik.
  3. Övervaka containeriserade applikationer för tillgänglighet och prestanda, användbart för både kapacitetsplanering och felsökning av prestandaproblem.
  4. Automatisera arbetsflöden genom att tillhandahålla hanterings- och skalningsstöd för containrar och deras värdmiljöer.
  5. Automatisera åtkomstkontroll för att övervaka din användarbas, inaktivera föråldrade konton och gästkonton och ta bort onödiga privilegier.
  6. Se till att din verktygsuppsättning kan övervaka dessa behållare och applikationer över flera miljöer (moln, lokalt eller hybrid) för att visualisera och jämföra prestanda över infrastruktur, nätverk, system och applikationer.

Hur man lagrar data och säkerställer dess säkerhet

Med framväxten av statistiska arbetarcontainrar måste klienter överväga förekomsten av data utanför värden och behovet av att skydda dessa data. 

Enligt Portworx och Aqua Security undersökning, datasäkerhet toppar listan över säkerhetsproblem som nämns av majoriteten av de svarande (61 %). 

Datakryptering är den huvudsakliga säkerhetsstrategin (64 %), men respondenterna använder också körtidsövervakning

(49 %), genomsökning av register efter sårbarheter (49 %), sökning efter sårbarheter i CI/CD-pipelines (49 %) och blockering av anomalier genom körtidsskydd (48 %).

Rekommendationer från Gartner:

  1. Välj förvaringslösningar som bygger på principer mikrotjänstarkitektur. Det är bättre att fokusera på de som uppfyller datalagringskraven för containertjänster, är hårdvaruoberoende, API-drivna, har en distribuerad arkitektur, stödjer lokal driftsättning och utplacering i det offentliga molnet.
  2. Undvik proprietära plugins och gränssnitt. Välj leverantörer som tillhandahåller Kubernetes-integration och stöder standardgränssnitt som CSI (Container Storage Interfaces).

Hur man arbetar med nätverk

Den traditionella företagsnätverksmodellen, där IT-team skapar nätverksbaserade utvecklings-, testnings-, kvalitetssäkrings- och produktionsmiljöer för varje projekt, passar inte alltid bra med det kontinuerliga utvecklingsarbetsflödet. Dessutom sträcker sig containernätverk över flera lager.

В blogg Magalix samlade regler på hög nivå som implementeringen av en klusternätverkslösning måste följa:

  1. Pods schemalagda på samma nod måste kunna kommunicera med andra pods utan att använda NAT (Network Address Translation).
  2. Alla systemdemoner (bakgrundsprocesser som kubelet) som körs på en viss nod kan kommunicera med pods som körs på samma nod.
  3. Pods använder värdnätverk, måste kunna kommunicera med alla andra pods på alla andra noder utan att använda NAT. Observera att värdnätverk endast stöds på Linux-värdar.

Nätverkslösningar måste vara tätt integrerade med Kubernetes primitiver och policyer. IT-ledare bör sträva efter en hög grad av nätverksautomatisering och förse utvecklare med rätt verktyg och tillräcklig flexibilitet.

Rekommendationer från Gartner:

  1. Ta reda på om din CaaS (container as a service) eller ditt SDN (Software Defined Network) stöder Kubernetes-nätverk. Om inte eller stödet är otillräckligt, använd nätverksgränssnittet CNI (Container Network Interface) för dina behållare, som stöder nödvändig funktionalitet och policyer.
  2. Se till att din CaaS eller PaaS (plattform som en tjänst) stöder skapandet av ingångskontroller och/eller lastbalanserare som distribuerar inkommande trafik mellan klusternoder. Om detta inte är ett alternativ, utforska med hjälp av tredje parts proxyservrar eller servicenät.
  3. Utbilda dina nätverksingenjörer i Linux-nätverk och nätverksautomatiseringsverktyg för att minska kompetensgapet och öka smidigheten.

Hur man hanterar applikationens livscykel

För automatiserad och sömlös applikationsleverans måste du komplettera containerorkestrering med andra automationsverktyg, såsom infrastruktur som kodprodukter (IaC). Dessa inkluderar Chef, Puppet, Ansible och Terraform. 

Automationsverktyg för att bygga och rulla ut applikationer krävs också (se "Magic Quadrant för Application Release Orchestration"). Behållare tillhandahåller också utökningsmöjligheter som liknar de som är tillgängliga vid distribution av virtuella maskiner (VM). Därför måste IT-ledare ha verktyg för livscykelhantering för containers.

Rekommendationer från Gartner:

  1. Sätt standarder för basbehållarbilder baserat på storlek, licensiering och flexibilitet för utvecklare att lägga till komponenter.
  2. Använd konfigurationshanteringssystem för att hantera livscykeln för behållare som lagerkonfiguration baserat på basavbildningar som finns i offentliga eller privata arkiv.
  3. Integrera din CaaS-plattform med automationsverktyg för att automatisera hela ditt applikationsarbetsflöde.

Hur man hanterar containrar med orkestratorer

Kärnfunktionaliteten för att distribuera containrar finns i orkestrerings- och planeringsskikten. Under schemaläggning placeras behållare på de mest optimala värdarna i klustret, enligt kraven på orkestreringsskiktet. 

Kubernetes har blivit de facto containerorkestreringsstandarden med en aktiv community och stöds av de flesta ledande kommersiella leverantörer. 

Rekommendationer från Gartner:

  1. Definiera grundläggande krav för säkerhetskontroller, övervakning, policyhantering, databeständighet, nätverk och containerlivscykelhantering.
  2. Baserat på dessa krav, välj det verktyg som bäst passar dina krav och användningsfall.
  3. Använd Gartner research (se "Hur man väljer en Kubernetes-distributionsmodell") för att förstå för- och nackdelarna med olika Kubernetes-distributionsmodeller och välja den bästa för din applikation.
  4. Välj en leverantör som kan tillhandahålla hybridorkestrering för arbetscontainrar i flera miljöer med snäv backend-integration, gemensamma förvaltningsplaner och konsekventa prismodeller.

Hur man använder funktionerna hos molnleverantörer

Gartner troratt intresset för att distribuera containrar på offentliga moln IaaS växer på grund av tillgängligheten av färdiga CaaS-erbjudanden, samt den täta integrationen av dessa erbjudanden med andra produkter som erbjuds av molnleverantörer.

IaaS-moln erbjuder on-demand resursförbrukning, snabb skalbarhet och tjänstehantering, vilket kommer att hjälpa till att undvika behovet av fördjupad kunskap om infrastrukturen och dess underhåll. De flesta molnleverantörer erbjuder en containerhanteringstjänst, och vissa erbjuder flera orkestreringsalternativ. 

Viktiga molnhanterade tjänsteleverantörer presenteras i tabellen: 

Molnleverantör
Servicetyp
Produkt/tjänst

alibaba
Native Cloud Service
Alibaba Cloud Container Service, Alibaba Cloud Container Service för Kubernetes

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

Jätte 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 för Kubernetes

Platform9
MSP
Hanterade Kubernetes

Red Hat
Hosted Service
OpenShift Dedikerad & Online

VMware
Hosted Service
Cloud PKS (beta)

Mail.ru Cloud Solutions*
Native Cloud Service
Mail.ru molncontainrar

* Vi kommer inte att dölja det, vi lade till oss själva här under översättningen :)

Offentliga molnleverantörer lägger också till nya funktioner och släpper produkter på plats. Inom en snar framtid kommer molnleverantörer att utveckla stöd för hybridmoln och multimolnmiljöer. 

Gartners rekommendationer:

  1. Utvärdera objektivt din organisations förmåga att distribuera och hantera lämpliga verktyg och överväg alternativa molncontainerhanteringstjänster.
  2. Välj programvara noggrant, använd öppen källkod där det är möjligt.
  3. Välj leverantörer med vanliga verksamhetsmodeller i hybridmiljöer som erbjuder hantering av federerade kluster med en enda ruta, samt leverantörer som gör det enkelt att själv hosta IaaS.

Några tips för att välja en Kubernetes aaS-leverantör från Replex-bloggen:

  1. Det är värt att leta efter distributioner som stöder hög tillgänglighet direkt. Detta inkluderar stöd för flera stora arkitekturer, högt tillgängliga etcd-komponenter och säkerhetskopiering och återställning.
  2. För att säkerställa mobilitet i dina Kubernetes-miljöer är det bäst att välja molnleverantörer som stöder ett brett utbud av distributionsmodeller, från lokalt till hybrid till multimoln. 
  3. Leverantörserbjudanden bör också utvärderas baserat på enkel installation, installation och skapande av kluster, såväl som uppdateringar, övervakning och felsökning. Grundkravet är att stödja helautomatiska klusteruppdateringar med noll stillestånd. Lösningen du väljer bör också tillåta dig att köra uppdateringar manuellt. 
  4. Identitets- och åtkomsthantering är viktigt ur både ett säkerhets- och styrningsperspektiv. Se till att Kubernetes-distributionen du väljer stöder integration med de autentiserings- och auktoriseringsverktyg du använder internt. RBAC och finkornig passerkontroll är också viktiga funktioner.
  5. Distributionen du väljer måste antingen ha en inbyggd mjukvarudefinierad nätverkslösning som täcker ett brett utbud av olika applikations- eller infrastrukturkrav, eller stödja en av de populära CNI-baserade nätverksimplementeringarna, inklusive Flannel, Calico, kube-router eller OVN.

Införandet av containrar i produktion håller på att bli huvudinriktningen, vilket framgår av resultaten av en undersökning gjord på Gartner sessioner om infrastruktur, drift och molnstrategier (IOCS) i december 2018:

Bästa praxis och bästa praxis för att köra containrar och Kubernetes i produktionsmiljöer
Som du kan se använder 27 % av de tillfrågade redan behållare i sitt arbete, och 63 % planerar att göra det.

В Portworx och Aqua Security undersökning 24 % av de tillfrågade rapporterade att de investerade mer än en halv miljon dollar per år på containerteknik, och 17 % av de tillfrågade spenderade mer än en miljon dollar per år på dem. 

Artikel utarbetad av molnplattformsteamet Mail.ru molnlösningar.

Vad mer att läsa om ämnet:

  1. DevOps bästa praxis: DORA-rapport.
  2. Kubernetes i piratkopieringens anda med en mall för implementering.
  3. 25 Användbara verktyg för implementering och användning av Kubernetes.

Källa: will.com

Lägg en kommentar