Läs på engelska

Dela via


Distribuera ett MongoDB-kluster i Azure Kubernetes Service (AKS)

Den här artikeln går igenom nödvändig information för att distribuera ett MongoDB-kluster på Azure Kubernetes Service (AKS). Det ger också en översikt över distributionsstrategin.

Viktigt

Programvara med öppen källkod nämns i AKS-dokumentationen och exempel. Programvara som du distribuerar undantas från AKS-serviceavtal, begränsad garanti och Azure Support. När du använder teknik med öppen källkod tillsammans med AKS kan du läsa supportalternativen som är tillgängliga från respektive community och projektunderhållare för att utveckla en plan.

Till exempel beskriver Ray GitHub-lagringsplatsen flera plattformar som varierar i svarstid, syfte och supportnivå.

Microsoft tar ansvar för att skapa de paket med öppen källkod som vi distribuerar på AKS. Det ansvaret omfattar att ha fullständigt ägarskap för bygg-, genomsöknings-, signerings-, validerings- och snabbkorrigeringsprocessen, tillsammans med kontroll över binärfilerna i containeravbildningar. Mer information finns i Sårbarhetshantering för AKS - och AKS-stödtäckning.

Vad är MongoDB?

MongoDB är ett populärt NoSQL-databashanteringssystem som är utformat för att hantera stora mängder ostrukturerade data. Till skillnad från traditionella relationsdatabaser som använder tabeller och rader använder MongoDB en flexibel, dokumentorienterad metod.

Anteckning

MongoDB Community Edition är inte programvara med öppen källkod. Den är licensierad under den offentliga licensenserversidan med "tillgänglig källa".

Fragmenterat MongoDB-kluster

Ett fragmenterat MongoDB-kluster hanterar stora datamängder och högt dataflöde genom att distribuera data över flera servrar eller shards. Den här arkitekturen möjliggör horisontell skalning, vilket är viktigt för program som har växande data- och prestandabehov.

Här är en uppdelning av dess viktigaste komponenter och hur det fungerar:

  • Shards: Enskilda MongoDB-instanser som kallas shards innehåller delmängder av data. Varje shard är en replikuppsättning eller en grupp MongoDB-instanser som replikerar data sinsemellan. Replikuppsättningar hjälper till att säkerställa hög tillgänglighet och feltolerans.
  • Konfigurationsservrar: De servrar som lagrar metadata och konfigurationsinställningar för det fragmenterade klustret kallas konfigurationsservrar. De håller reda på klustrets information om datadistribution och routning. Ett kluster har vanligtvis tre konfigurationsservrar för att tillhandahålla redundans.
  • Mongos-instanser: Mongos är en routningstjänst som dirigerar klientbegäranden till rätt shard. Den fungerar som mellanhand mellan klienten och fragmenten. En instans av Mongos hanterar frågeroutning och aggregerar resultat från shards.
  • Shardnyckel: När data distribueras över shards baseras de på en shardnyckel, som antingen är ett enda indexerat fält eller flera fält i dokumenten. Shardnyckeln avgör hur data partitioneras mellan fragmenten. En väl vald shardnyckel hjälper till att säkerställa jämn datadistribution och effektiv frågekörning.
  • Datadistribution: Data distribueras över shards baserat på shardnyckeln. Den här fördelningen hjälper till att balansera belastningen och hantera stora datamängder effektivt. MongoDB använder en intervallbaserad eller hashbaserad horisontell partitioneringsstrategi, beroende på shardnyckeln.
  • Hög tillgänglighet: Varje shard är en replikuppsättning, vilket innebär att den replikerar sina data över flera noder. Den här konfigurationen säkerställer att data förblir tillgängliga även om en eller flera noder misslyckas.

Percona-operator för MongoDB

Percona Operator for MongoDB är ett verktyg med öppen källkod som Percona utvecklade. Den automatiserar distribution, hantering och skalning av MongoDB-kluster i Kubernetes-miljöer. Det förenklar åtgärder genom att hantera uppgifter som etablering, skalning, säkerhetskopiering och återställning. Dess hantering av alla dessa uppgifter hjälper till att säkerställa hög tillgänglighet och prestanda för MongoDB-kluster.

Operatorn använder Kubernetes anpassade resursdefinitioner (CRD) för att hantera MongoDB-konfigurationer deklarativt och för att hantera redundans, övervakning och aviseringar. Resultatet är minskade administrativa omkostnader och konsekventa hanteringsmetoder. Percona-operatorn förbättrar effektiviteten och tillförlitligheten för MongoDB-distributioner, särskilt i molnbaserade program. Det är idealiskt för utvecklings-, testnings- och produktionsscenarier.

Diagram som visar hur Percona-operatorn relaterar till ett MongoDB-kluster.

Översikt över MongoDB-lösningen

Målet med den föreslagna lösningen är att:

  • Se till att MongoDB-klustret effektivt kan hantera stora datamängder och åtgärder med högt dataflöde.
  • Upprätthålla hög tillgänglighet och feltolerans.

Lösningen uppnår det här målet med hjälp av replikuppsättningar, regler för tillhörighetsskydd och korrekt resursallokering.

Distributionsstrategi

Distributionsstrategin för MongoDB består av följande komponenter:

  • Ett fragmenterat kluster som möjliggör distribution av data över flera shards, vilket förbättrar skalbarheten och prestandan.
  • Konfigurationsservrar som hanteras av en replikuppsättning med tre medlemmar för att säkerställa feltolerans och hög tillgänglighet. Regler mot tillhörighet distribuerar dessa servrar mellan feldomäner.
  • Tre Mongos-instanser distribuerade över tillgänglighetszoner och exponerade internt i klustret. De ger belastningsutjämning och återhämtning för att dirigera klientbegäranden.

Deltagare

Microsoft underhåller den här artikeln. Följande deltagare skrev den ursprungligen:

  • Nelly Kiboi | Tjänsttekniker
  • Saverio Proto | Huvudtekniker för kundupplevelse
  • Don High | Huvudkundtekniker
  • LaBrina Loving | Huvudtjänsttekniker
  • Ken Kilty | Huvudnamn för TPM
  • Russell de Pina | Huvudnamn för TPM
  • Colin Mixon | Produktchef
  • Ketan Chawda | Senior kundtekniker
  • Naveed Kharadi | Kundupplevelsetekniker
  • Erin Schaffer | Innehållsutvecklare 2
  • Carol Smith | Senior innehållsutvecklare

Gå vidare