Beschikbaarheidssets in AKS ingeschakeld door Azure Arc
Beschikbaarheidssets zijn logische groepen VM's met zwakke antiaffiniteitsrelaties met elkaar om ervoor te zorgen dat ze gelijkmatig worden verdeeld over de beschikbare foutdomeinen in een fysiek cluster. Een foutdomein in deze context is een fysieke host of een groep fysieke hosts. Met behulp van beschikbaarheidssets kan AKS Arc de beschikbaarheid en distributie van uw Kubernetes-workloads verbeteren. Beschikbaarheidssets kunnen scenario's voorkomen waarin een storing met één knooppunt ertoe kan leiden dat meerdere VM's uitvallen of onevenwichtig worden.
Overzicht
Beschikbaarheidssets bieden verschillende voordelen voor AKS op lokale Azure-gebruikers, zoals:
- Verbetert de beschikbaarheid en tolerantie van uw toepassingen door scenario's te voorkomen waarin meerdere VM's in dezelfde knooppuntgroep of hetzelfde besturingsvlak omlaag gaan of onbalans raken vanwege een storing in één knooppunt.
- Optimaliseert het resourcegebruik en de prestaties van uw cluster door ervoor te zorgen dat VM's gelijkmatig over de beschikbare knooppunten worden verdeeld en niet zijn geconcentreerd op één knooppunt of een subset van knooppunten.
- Komt overeen met de best practices en verwachtingen van uw klanten en partners die op zoek zijn naar een betrouwbare en consistente on-premises Kubernetes-ervaring.
Beschikbaarheidssets inschakelen
Met AKS op Azure Local, versie 23H2, wordt de functie beschikbaarheidssets standaard ingeschakeld wanneer u een knooppuntgroep maakt. Met AKS op Windows Server kunt u de functie beschikbaarheidssets inschakelen door de -enableAvailabilitySet
parameter toe te voegen wanneer u een AKS-cluster maakt, New-AksHciCluster -Name <name> -controlPlaneNodeCount 3 -osType Linux -kubernetesVersion $kubernetesVersion -enableAvailabilitySet
bijvoorbeeld.
Hoe beschikbaarheidssets werken in AKS die zijn ingeschakeld door Azure Arc
Wanneer u een nieuw AKS Arc-cluster maakt, maakt AKS Arc automatisch beschikbaarheidssets, een voor de vm's in het besturingsvlak en een andere voor elk van de knooppuntgroepen in het Kubernetes-cluster. Elke knooppuntgroep heeft een eigen beschikbaarheidsset. Met deze indeling zorgt AKS Arc ervoor dat VM's met dezelfde rol (besturingsvlak of knooppuntgroep) zich nooit op dezelfde fysieke host bevinden en dat ze worden verdeeld over de beschikbare knooppunten in een cluster.
Zodra de beschikbaarheidssets zijn gemaakt en de vm's zijn toegewezen, plaatst het systeem deze automatisch op de juiste fysieke knooppunten. Als een knooppunt uitvalt, voert het systeem ook automatisch een failover uit van de VM's naar andere knooppunten en wordt deze opnieuw in evenwicht gebracht wanneer het knooppunt wordt hersteld. Op deze manier kunt u hoge beschikbaarheid en optimale distributie van uw Kubernetes-workloads bereiken zonder handmatige tussenkomst.
Overweeg een AKS op Azure Local, versie 23H2-cluster met twee fysieke hostmachines, Host A en Host B, drie vm's in het besturingsvlak en twee werkknooppunt-VM's, Nodepool1VM1 en Nodepool1VM2. Om hoge beschikbaarheid van uw Kubernetes-toepassingen te garanderen, mogen de VM's van de knooppuntgroep nooit dezelfde host delen, tenzij een van de hosts tijdelijk niet beschikbaar is voor gepland onderhoud of capaciteitsprobleem, waardoor de VM (virtuele machine) tijdelijk op een alternatieve host kan worden geplaatst.
In het volgende diagram vertegenwoordigt elke kleur een antiaffiniteitsgroep:
Als Host B uitvalt vanwege opnieuw opstarten, voert u een failover uit naar Host A, zoals wordt weergegeven in de volgende afbeelding. Ervan uitgaande dat uw toepassing pods uitvoert in NodePoolVM1, heeft dit geen invloed op uw toepassing:
In de oude architectuur, als Host B weer online kwam na het opnieuw opstarten, was er geen garantie dat de VM's terug zouden gaan van Host A naar Host B (herverdeling), waardoor de workloads op dezelfde host blijven staan en een single point of failure zouden maken, zoals wordt weergegeven in het volgende diagram:
Beschikbaarheidssets voor AKS Arc kunnen helpen bij het opnieuw verdelen van VM's zodra een host herstelt na tijdelijke storing. In dit voorbeeld worden ControlPlaneVM2, ControlPlaneVM3 en Nodepool1VM2 automatisch verplaatst naar Host B, zoals hier wordt weergegeven:
Belangrijk
Beschikbaarheidssets in AKS Arc is een nieuwe functie die zich nog steeds ontwikkelt en verbetert. We ondersteunen nog geen handmatige configuratie van de foutdomeinen of beschikbaarheidssets. U kunt de foutdomeinen van een beschikbaarheidsset niet wijzigen nadat deze is gemaakt. VM's worden toegewezen aan een beschikbaarheidsset bij het maken van een cluster en kunnen niet worden gemigreerd naar een andere beschikbaarheidsset.
Machines toevoegen of verwijderen
In een hostverwijderingsscenario wordt de host niet langer beschouwd als een onderdeel van het cluster. Deze verwijdering treedt meestal op wanneer u een machine vervangt vanwege hardwareproblemen of om andere redenen het lokale Azure-cluster omlaag schalen. Tijdens een storing van een knooppunt blijft het knooppunt onderdeel van het lokale Azure-cluster, maar wordt het weergegeven als offline.
Als een fysieke machine (foutdomein) permanent uit het cluster wordt verwijderd, wordt de configuratie van de beschikbaarheidsset niet gewijzigd om het aantal foutdomeinen te verminderen. In dit scenario voert de beschikbaarheidsset een beschadigde status in. U wordt aangeraden uw Kubernetes-clusters opnieuw te implementeren, zodat de beschikbaarheidsset wordt bijgewerkt met het juiste aantal foutdomeinen.
Wanneer een nieuwe fysieke machine (foutdomein) wordt toegevoegd aan het cluster, wordt de configuratie van de beschikbaarheidsset automatisch uitgebreid met de nieuwe machine. De bestaande VM's worden echter niet opnieuw in evenwicht gebracht om deze nieuwe configuratie toe te passen, omdat ze al zijn toegewezen aan beschikbaarheidssets. U wordt aangeraden uw Kubernetes-clusters opnieuw te implementeren, zodat de beschikbaarheidsset wordt bijgewerkt met het juiste aantal foutdomeinen.