Een MongoDB-cluster implementeren in Azure Kubernetes Service (AKS)
In dit artikel vindt u informatie over vereisten voor het implementeren van een MongoDB-cluster in Azure Kubernetes Service (AKS). Het biedt ook een overzicht van de implementatiestrategie.
Belangrijk
Opensource-software wordt vermeld in AKS-documentatie en -voorbeelden. Software die u implementeert, is uitgesloten van AKS-serviceovereenkomsten, beperkte garantie en ondersteuning voor Azure. Wanneer u opensource-technologie naast AKS gebruikt, raadpleegt u de beschikbare ondersteuningsopties van de respectieve community's en projectonderhouders om een plan te ontwikkelen.
De Ray GitHub-opslagplaats beschrijft bijvoorbeeld verschillende platforms die variëren in reactietijd, doel en ondersteuningsniveau.
Microsoft neemt de verantwoordelijkheid voor het bouwen van de opensource-pakketten die we implementeren op AKS. Deze verantwoordelijkheid omvat het volledige eigendom van het build-, scan-, teken-, validatie- en hotfixproces, samen met controle over de binaire bestanden in containerinstallatiekopieën. Zie Beveiligingsbeheer voor AKS- en AKS-ondersteuningsdekking voor meer informatie.
Wat is MongoDB?
MongoDB is een populair NoSQL-databasebeheersysteem dat is ontworpen voor het verwerken van grote hoeveelheden ongestructureerde gegevens. In tegenstelling tot traditionele relationele databases die gebruikmaken van tabellen en rijen, maakt MongoDB gebruik van een flexibele, documentgerichte benadering.
Notitie
MongoDB Community Edition is geen opensource-software. Het is gelicentieerd onder de openbare licentie aan de serverzijde met 'bron beschikbaar'.
MongoDB-shardcluster
Een mongoDB-shardcluster verwerkt grote gegevenssets en hoge doorvoer door gegevens over meerdere servers of shards te distribueren. Deze architectuur maakt horizontaal schalen mogelijk, wat essentieel is voor toepassingen met groeiende gegevens- en prestatiebehoeften.
Hier volgt een uitsplitsing van de belangrijkste onderdelen en hoe deze werkt:
- Shards: afzonderlijke MongoDB-exemplaren met de naam shards bevatten subsets van de gegevens. Elke shard is een replicaset of een groep MongoDB-exemplaren die gegevens tussen zichzelf repliceren. Replicasets zorgen voor hoge beschikbaarheid en fouttolerantie.
- Configuratieservers: de servers die metagegevens en configuratie-instellingen voor het shard-cluster opslaan, worden configuratieservers genoemd. Ze houden de gegevensdistributie- en routeringsgegevens van het cluster bij. Een cluster heeft doorgaans drie configuratieservers om redundantie te bieden.
- Mongos-exemplaren: Mongos is een routeringsservice waarmee clientaanvragen worden omgeleid naar de juiste shard. Het fungeert als intermediair tussen de client en de shards. Een exemplaar van Mongos beheert queryroutering en voegt resultaten van shards samen.
- Shardsleutel: wanneer gegevens over shards worden gedistribueerd, is deze gebaseerd op een shardsleutel, ofwel één geïndexeerd veld of meerdere velden in de documenten. De shardsleutel bepaalt hoe gegevens worden gepartitioneerd tussen de shards. Een goed gekozen shardsleutel zorgt ervoor dat zelfs gegevensdistributie en efficiënte query's worden uitgevoerd.
- Gegevensdistributie: gegevens worden verdeeld over shards op basis van de shardsleutel. Deze distributie helpt de belasting te verdelen en grote gegevenssets effectief te beheren. MongoDB maakt gebruik van een shardingstrategie op basis van een bereik of hash, afhankelijk van de shardsleutel.
- Hoge beschikbaarheid: elke shard is een replicaset, wat betekent dat de gegevens worden gerepliceerd op meerdere knooppunten. Deze instelling zorgt ervoor dat gegevens beschikbaar blijven, zelfs als een of meer knooppunten mislukken.
Percona-operator voor MongoDB
De Percona Operator voor MongoDB is een opensource-hulpprogramma dat Percona heeft ontwikkeld. Het automatiseert de implementatie, het beheer en het schalen van MongoDB-clusters in Kubernetes-omgevingen. Het vereenvoudigt bewerkingen door taken zoals inrichten, schalen, back-ups en herstel af te handelen. De verwerking van al deze taken zorgt voor hoge beschikbaarheid en prestaties van MongoDB-clusters.
De operator maakt gebruik van aangepaste Kubernetes-resourcedefinities (CRD's) voor het declaratief beheren van MongoDB-configuraties en voor het afhandelen van failovers, bewaking en waarschuwingen. Het resultaat is minder administratieve overhead en consistente beheerprocedures. De Percona Operator verbetert de efficiëntie en betrouwbaarheid van MongoDB-implementaties, met name in cloudtoepassingen. Het is ideaal voor ontwikkelings-, test- en productiescenario's.
Overzicht van MongoDB-oplossing
Het doel van de voorgestelde oplossing is het volgende:
- Zorg ervoor dat het MongoDB-cluster grote gegevenssets en bewerkingen met hoge doorvoer effectief kan verwerken.
- Hoge beschikbaarheid en fouttolerantie behouden.
De oplossing bereikt dit doel door gebruik te maken van replicasets, antiaffiniteitsregels en de juiste resourcetoewijzing.
Implementatiestrategie
De MongoDB-implementatiestrategie bestaat uit de volgende onderdelen:
- Een shardcluster om de distributie van gegevens over meerdere shards mogelijk te maken, waardoor de schaalbaarheid en prestaties worden verbeterd.
- Configuratieservers die worden beheerd door een replicaset met drie leden om fouttolerantie en hoge beschikbaarheid te garanderen. Antiaffiniteitsregels verdelen deze servers over foutdomeinen.
- Drie Mongos-exemplaren die zijn gedistribueerd over beschikbaarheidszones en intern beschikbaar worden gesteld binnen het cluster. Ze bieden taakverdeling en tolerantie voor het routeren van clientaanvragen.
Medewerkers
Microsoft onderhoudt dit artikel. De volgende inzenders hebben het oorspronkelijk geschreven:
- Nelly Kiboi | Service Engineer
- Saverio Proto | Principal Customer Experience Engineer
- Hoog | Principal Customer Engineer
- LaBrina Loving | Principal Service Engineer
- Ken Kilty | Principal TPM
- Russell de Tina | Principal TPM
- Colin Mixon | ProductManager
- Ketan Chawda | Senior klanttechnicus
- Naveed Kharadi | Klantervaringstechnicus
- Erin Schaffer | Inhoudsontwikkelaar 2
- Carol Smith | Senior Content Developer
Volgende stap
Azure Kubernetes Service