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

Bästa praxis och rekommendationer för att köra containrar och Kubernetes i produktionsmiljöer
Ekosystemen av containeriserings Tekniker utvecklas och förändras snabbt, vilket innebär att det saknas bra arbetsmetoder på detta område. Trots detta används Kubernetes och containrar allt oftare – både för att modernisera gamla applikationer och för att utveckla moderna molnapplikationer. 

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

Hur kan man förstå om ditt företag är redo att rulla ut containrar i produktionsmiljö?

Enligt Gartner, kommer mer än 75 % av organisationerna att använda containeriserade applikationer i produktionen år 2022. Detta är en betydande ökning jämfört med nuvarande nivåer, där sådana applikationer används av mindre än 30 % av företagen. 

Enligt 451 Research, den förväntade marknaden för användning av containerteknologier år 2022 beräknas till 4,3 miljarder USD. Det är mer än dubbelt så mycket som de belopp som hade förutspåtts 2019, med en marknadstillväxttakt på 30%.

I i en undersökning av Portworx och Aqua Security 87 % av respondenterna uppgav att de för närvarande använder containerteknologier. Jämfört med 2017, när 55 % av respondenterna gjorde det. 

Trots det växande intresset och ökande adoptionen av containrar, kräver deras implementering i produktion utbildning på grund av teknologisk omognad och brist på kunskap. Organisationer måste realistiskt bedöma de affärsprocesser som kräver containerisering av applikationer. IT-ledare bör utvärdera om de har den kompetens som krävs för att gå framåt med hänsyn till behovet av snabb utbildning. 

Gartners experter anser att frågorna i bilden nedan kan hjälpa till att förstå om du är redo för att rulla ut containrar i produktion:

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

De vanligaste misstagen vid användning av containrar i produktion

Organisationer överskattar ofta ansträngningarna som krävs för att driva containrar i produktion. Gartner har funnit några vanliga misstag i kunders scenarier vid användning av containrar i produktionsmiljöer:

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

Hur man säkerställer säkerheten för containrar

Säkerheten kan inte hanteras "senare". Den måste integreras i DevOps-processen, vilket har lett till att termen DevSecOps har uppstått. Organisationer måste planera skyddet av containermiljön under hela utvecklingslivscykeln, som omfattar bygg- och utvecklingsprocessen, distribuerar och kör applikationen.

Rekommendationer från Gartner: 

  1. Integrera processen för att skanna applikationsbilder för att upptäcka sårbarheter i kontinuerlig integration/kontinuerlig leverans (CI/CD). Applikationer skannas under bygg- och driftsättningsfasen. Betona vikten av att skanna och identifiera komponenter med öppen källkod, bibliotek och ramverk. Användning av sårbara versioner av programvara av utvecklare är en av de främsta orsakerna till sårbarheter i containrar.
  2. Förbättra konfigurationen med hjälp av tester från Center for Internet Security (CIS), som finns tillgängliga både för Docker och Kubernetes.
  3. Se till att tillämpa åtkomstkontroll, säkerställa åtskillnad av uppgifter och implementera en sekretspolicy. Känslig information, såsom Secure Sockets Layer (SSL)-nycklar eller databasuppgifter, krypteras av orkestreraren eller tredje parts hanteringstjänster och tillhandahålls vid körning.
  4. Undvik containrar med förhöjda rättigheter genom att använda säkerhetspolicys, det minskar potentiella risker för intrång.
  5. Använd säkerhetsverktyg som tillhandahåller vitlistor, beteendemonitorering och anomalidetektering för att förhindra illvilliga aktiviteter.

Rekommendationer från StacxRox:

  1. Använd inbyggda funktioner i Kubernetes. Ställ in åtkomst för användare med hjälp av roller. Se till att du inte ger onödiga behörigheter till enskilda parter, även om det kan ta lite tid att tänka igenom minimalt nödvändiga behörigheter. Det kan verka frestande att ge klusteradministratören breda privilegier eftersom det sparar tid i det inledande skedet. Men vilka som helst kompromisser eller felaktigheter i kontot kan leda till förödande konsekvenser senare. 
  2. Undvik att duplicera åtkomsträttigheter. Ibland kan det vara användbart att olika roller överlappar, men det kan leda till driftsproblem samt skapa 'döda zoner' när behörigheter tas bort. Dessutom är det viktigt att radera oanvända och inaktiva roller.
  3. Ställ in nätverkspolicys: isolera moduler för att begränsa åtkomst; ge uttryckligen tillgång till internet för de moduler som behöver det, med hjälp av etiketter; ge uttryckligen tillåtelse för 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 — det grundläggande problemet för företag vid distribution av Kubernetes-kluster. Utvecklare tenderar att fokusera mer på funktionaliteten hos de applikationer de utvecklar snarare än på aspekterna av övervakning av dessa applikationer. 

Rekommendationer från Gartner:

  1. Försök att övervaka statusen på containrar eller tjänster i dem tillsammans med övervakningen av värdsystemet.
  2. Ge företräde åt leverantörer och verktyg med djup integrering i containerorkestrering, särskilt Kubernetes.
  3. Välj verktyg som erbjuder detaljerad loggning, automatisk upptäckte av tjänster och realtidsrekommendationer med hjälp av analys och/eller maskininlärning.

Bloggen SolarWinds rekommenderar:

  1. Att använda verktyg för automatisk upptäckte och spårning av containermetrik, korrelation av prestandametrik som CPU, minne och drifttid.
  2. Säkerställ optimal kapacitetsplanering genom att förutsäga kapacitetsutarmning baserat på övervakningsdata för containrar.
  3. Organisera övervakning av applikationer som körs i containrar baserat på tillgänglighet och prestanda, vilket är användbart både för kapacitetsplanering och för att lösa prestandaproblem.
  4. Automatisera arbetsflöden genom att ge stöd för hantering och skalning för containrar och deras driftsmiljöer.
  5. Automatisera åtkomstkontroll för att spåra användardatabasen, stänga av föråldrade och gästkonton, ta bort överflödiga behörigheter.
  6. Se till att ditt verktygssats kan spåra dessa containrar och applikationer i olika miljöer (moln, lokala eller hybrida) för att visualisera och korrelera prestanda i infrastruktur, nätverk, system och applikationer.

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

Med en ökning av antalet arbetscontainrar med bevarande av tillstånd behöver kunderna ta hänsyn till datalagring utanför värden, liksom behovet av att skydda dessa data. 

Enligt uppgifter undersökning av Portworx och Aqua Security, säkerhet för data står högst på listan över säkerhetsproblem som de flesta deltagarna identifierar (61%). 

Datakryptering är den primära säkerhetsstrategin (64%), men respondenterna använder också övervakning av körningstid

(49%), sårbarhetsskanning i register (49%), sårbarhetsskanning i CI/CD-pipelines (49%) och anomalidetektering genom skydd av körningstid (48%).

Rekommendationer från Gartner:

  1. Välj datalagringslösningar baserade på principer för mikrotjänstarkitektur.Det är bättre att fokusera på dem som uppfyller datalagringskraven för container-tjänster, som är hårdvaruoberoende, styrs via API, har en distribuerad arkitektur, stödjer lokal och offentlig molndistribution.
  2. Undvik proprietära plugins och gränssnitt. Välj leverantörer som säkerställer integration med Kubernetes och stöder standardgränssnitt, såsom CSI (Container Storage Interfaces).

Hur man arbetar med nätverk

Den traditionella modellen för företagsnätverk, där IT-specialister skapar nätverksmiljöer för utveckling, testning, kvalitetssäkring och produktion för varje projekt, stämmer inte alltid väl överens med processen för kontinuerlig utveckling. Dessutom omfattar container-nätverk flera nivåer.

I i bloggen Magalix har vi sammanställt övergripande regler som implementeringen av nätverkslösningar i kluster bör följa:

  1. Pods som är planerade på samma nod ska kunna utbyta data med andra moduler utan att använda NAT (nätverksadressöversättning).
  2. Alla systemdemoner (bakgrundsprocesser, till exempel kubelet) som körs på en viss nod kan interagera med pods som körs på samma nod.
  3. Pods som använder värd-nätverket ska kunna kommunicera med alla andra pods på alla andra noder utan att använda NAT. Observera att värd-nätverket endast stöds på Linux-värdar.

Nätverkslösningar måste vara djupt integrerade med Kubernetes-primitive och policyer. IT-chefer måste sträva efter en hög grad av nätverksautomatisering, ge utvecklare de rätta verktygen och tillräcklig flexibilitet.

Rekommendationer från Gartner:

  1. Kontrollera om din CaaS (Container as a Service) eller ditt SDN (Software Defined Network) stöder Kubernetes-nätverk. Om inte, eller om stödet är otillräckligt, använd ett CNI (Container Network Interface) för dina containrar, som stöder nödvändig funktionalitet och policyer.
  2. Se till att din CaaS eller PaaS (Platform as a Service) stöder skapandet av ingångskontroller och/eller lastbalanserare som fördelar inkommande trafik mellan kluster-noder. Om detta inte är möjligt, överväg att använda externa proxyer eller mekanismer för service mesh.
  3. Utbilda dina nätverksingenjörer i att arbeta med Linux-nätverk och verktyg för nätverksautomatisering för att minska kunskapsluckor och öka flexibiliteten.

Hur man hanterar livscykeln för applikationer

För automatiserad och sömlös leverans av applikationer måste containerorkestrering kompletteras med andra automatiseringsverktyg, såsom Infrastructure as Code (IaC) produkter. Dessa inkluderar Chef, Puppet, Ansible och Terraform. 

Det krävs också automatiseringsverktyg för byggande och distribution av applikationer (se "Magiskt kvadrant för applikationsrelease-orkestrering"). Containrar ger också möjligheter för skalning, liknande de som fanns vid distribution av virtuella maskiner (VM). Därför måste IT-chefer ha verktyg för hantering av containerlivscykeln.

Rekommendationer från Gartner:

  1. Sätt standarder för bascontainermallar med avseende på storlek, licensiering och flexibilitet för att låta utvecklare lägga till komponenter.
  2. Använd konfigurationshanteringssystem för att hantera livscykeln för containrar som lagrar konfigurationen i lager baserade på bascontainermallar som finns i offentliga eller privata arkiv.
  3. Integrera CaaS-plattformen med automatiseringsverktyg för att automatisera hela applikationsarbetsflödet.

Hur man hanterar containrar med hjälp av orkestratorer

De grundläggande funktionerna för containerdistributions tillhandahålls på orkestrerings- och planeringsnivåer. Vid planering placeras containrarna på de mest optimala värdarna i klustret, enligt kraven från orkestreringsnivån. 

Kubernetes har blivit de facto-standarden för containerorkestrering med ett aktivt samhälle, och stöds av de flesta ledande kommersiella leverantörer. 

Rekommendationer från Gartner:

  1. Definiera grundläggande krav för säkerhetskontroller, övervakning, policystyrning, datalagring, nätverkshantering och containerlivscykeln.
  2. Baserat på dessa krav, välj det verktyg som bäst uppfyller dina behov och användningsscenarier.
  3. Använd Gartner-forskning (se "Hur man väljer Kubernetes-distributionsmodell"), för att förstå fördelarna och nackdelarna med olika Kubernetes-distributionsmodeller och välja den som passar dina behov bäst.
  4. Välj en leverantör som kan erbjuda hybridorkestrering för arbetscontainrar i flera miljöer, med nära integration med backend-system, gemensamma hanteringsplaner och enhetliga prissättningsmodeller.

Hur man använder cloud-leverantörers möjligheter

Gartner anser, att intresset för containerdistributions i offentlig IaaS-moln ökar på grund av tillgången till CaaS-färdiga erbjudanden, samt den nära integrationen av dessa erbjudanden med andra produkter som erbjuds av cloud-leverantörer.

IaaS-moln erbjuder resurser på begäran, snabb skalbarhet och tjänstehantering, vilket hjälper till att undvika behovet av djupa kunskaper om infrastruktur och dess underhåll. De flesta cloud-leverantörer erbjuder en containerhanteringstjänst, och många erbjuder flera alternativ för orkestrering. 

Nyckelleverantörer av hanterade tjänster presenteras i tabellen: 

Molnleverantör
Typ av tjänst
Produkt/tjänst

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

Giant Swarm
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 for Kubernetes

Platform9
MSP
Managed Kubernetes

Red Hat
Hosted Service
OpenShift Dedicated & Online

VMware
Hosted Service
Cloud PKS (Beta)

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

* Vi döljer inte att vi lade till oss själva under översättningen 🙂

Leverantörer av publika moln lägger också till nya funktioner och släpper lokala produkter. Under den närmaste framtiden kommer molnleverantörer att utveckla stödet för hybrida moln och multicloud-miljöer. 

Gartners rekommendationer:

  1. Utvärdera objektivt din organisations möjligheter att distribuera och hantera lämpliga verktyg, samt överväga alternativa tjänster för hantering av molncontainrar.
  2. Välj noggrant programvara, använd öppen källkod där det är möjligt.
  3. Välj leverantörer med enhetliga driftsmodeller i hybrida miljöer som erbjuder hantering av sammanslagna kluster från en enda panel, samt leverantörer som förenklar eget användande av IaaS.

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

  1. Det är värt att leta efter distributioner som stöder hög tillgänglighet direkt ur lådan. Detta inkluderar stöd för flera grundläggande arkitekturer, hög tillgänglighet för etcd-komponenter samt backup och återställning.
  2. För att säkerställa mobilitet i Kubernetes-miljöer är det bäst att välja molnleverantörer som stöder ett brett spektrum av distributionsmodeller: från lokala till hybrida och multicloud. 
  3. Erbjudanden från leverantörer bör också bedömas utifrån enkelheten i konfiguration, installation och skapande av kluster, samt uppdateringar, övervakning och felsökning. Ett grundkrav är stöd för helt automatiserade klusteruppdateringar med noll driftstopp. Den valda lösningen bör också tillåta manuell uppdatering. 
  4. Identitets- och åtkomsthantering är viktigt både ur säkerhetssynpunkt och för förvaltningen. Se till att den valda Kubernetes-distributionen stödjer integration med autentiserings- och auktoriseringsverktyg som används inom företaget. RBAC och detaljerad åtkomstkontroll är också viktiga funktionsuppsättningar.
  5. Den valda distributionen måste antingen ha en egen nätverkslösning som definieras av mjukvaran och som täcker ett brett spektrum av krav från olika applikationer eller infrastruktur, 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 blir en kännbar trend, vilket visas av resultaten från en enkät som genomfördes på Gartner-sessionen om infrastruktur, drift och molnstrategier (IOCS) i december 2018:

Bästa praxis och rekommendationer för att köra containrar och Kubernetes i produktionsmiljöer
Som vi ser använder 27% av de tillfrågade redan containrar i sitt arbete, medan 63% planerar att göra det.

I i en undersökning av Portworx och Aqua Security 24% av respondenterna rapporterade att de investerar mer än en halv miljon dollar om året i containerteknologier, och 17% av respondenterna spenderar mer än en miljon dollar om året på dem. 

Artikeln är författad av teamet på den molnbaserade plattformen Mail.ru Cloud Solutions.

Vad mer att läsa om ämnet:

  1. Bästa praxis för DevOps: DORA-rapporten.
  2. Kubernetes i piratanda med en implementeringsmall.
  3. 25 användbara verktyg för distribution och implementering av Kubernetes.

Källa: habr.com

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster