Een Azure Database for PostgreSQL-server omhoog en omlaag schalen met behulp van CLI (az of kubectl)

Soms moet u mogelijk de kenmerken of de definitie van een server wijzigen. Bijvoorbeeld:

  • Het aantal vCores dat door de server wordt gebruikt omhoog of omlaag schalen
  • Het geheugen dat door de server wordt gebruikt omhoog of omlaag schalen

In deze handleiding wordt uitgelegd hoe u vCore en/of geheugen schaalt.

Door de vCore- of geheugeninstellingen van uw server omhoog of omlaag te schalen, kunt u een minimum en/of een maximum instellen voor elk van de vCore- en geheugeninstellingen. Als u uw server wilt configureren voor het gebruik van een specifiek aantal vCores of een specifieke hoeveelheid geheugen, stelt u de minimale instellingen in die gelijk zijn aan de maximuminstellingen. Voordat u de waarde die is ingesteld voor vCores en geheugen verhoogt, moet u ervoor zorgen dat

  • u beschikt over voldoende resources in de fysieke infrastructuur die als host fungeert voor uw implementatie en
  • werkbelastingen die op hetzelfde systeem worden gehost, concurreren niet voor dezelfde vCores of hetzelfde geheugen.

Notitie

Omdat het om een preview-functie gaat, is de technologie die in dit artikel wordt behandeld onderhevig aan de Aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews.

De meest recente updates zijn beschikbaar in de releaseopmerkingen.

De huidige definitie van de server weergeven

Voer een van de volgende opdrachten uit om de huidige definitie van uw server weer te geven en te zien wat de huidige vCore- en geheugeninstellingen zijn:

Met Azure CLI (az)

az postgres server-arc show -n <server name> --k8s-namespace <namespace> --use-k8s

CLI met kubectl

kubectl describe postgresql/<server name> -n <namespace name>

Hiermee wordt de configuratie van uw servergroep geretourneerd. Als u de server hebt gemaakt met de standaardinstellingen, ziet u de definitie als volgt:

Spec:
  Dev:  false
  Scheduling:
    Default:
      Resources:
        Requests:
          Memory:  256Mi
...

De definitie van de server interpreteren

In de definitie van een server is de sectie met de instellingen van minimaal of maximum vCore per knooppunt en het minimum of maximumgeheugen per knooppunt de sectie Planning . In deze sectie worden de maximuminstellingen behouden in een subsectie met de naam 'limieten' en worden de minimale instellingen behouden in de subsectie met de naam 'aanvragen'.

Als u minimuminstellingen instelt die afwijken van de maximuminstellingen, garandeert de configuratie dat uw server de aangevraagde resources indien nodig wordt toegewezen. De limieten die u hebt ingesteld, worden niet overschreden.

De resources (vCores en geheugen) die daadwerkelijk door uw server worden gebruikt, zijn maximaal de maximale instellingen en zijn afhankelijk van de werkbelastingen en de resources die beschikbaar zijn op het cluster. Als u de instellingen met een maximum niet overschrijdt, kan uw server maximaal alle resources gebruiken die het Kubernetes-cluster toewijst aan de Kubernetes-knooppunten waarop uw server is gepland.

In een standaardconfiguratie is alleen het minimale geheugen ingesteld op 256Mi, omdat dit de minimale hoeveelheid geheugen is die wordt aanbevolen om PostgreSQL-server uit te voeren.

Notitie

Als u een minimum instelt, betekent dit niet dat de server noodzakelijkerwijs dat minimum gebruikt. Dit betekent dat als de server deze nodig heeft, deze ten minste dit minimum wordt toegewezen. Laten we bijvoorbeeld eens kijken of we het instellen --minCpu 2. Dit betekent niet dat de server altijd ten minste 2 vCores gebruikt. In plaats daarvan betekent dit dat de server minder dan 2 vCores kan gebruiken als deze niet zoveel nodig heeft en het gegarandeerd ten minste 2 vCores wordt toegewezen als deze later nodig is. Het impliceert dat het Kubernetes-cluster resources toewijst aan andere workloads op een zodanige manier dat er 2 vCores aan de server kunnen worden toegewezen als deze ooit nodig zijn. Ook is omhoog en omlaag schalen geen onlinebewerking, omdat hiervoor de kubernetes-pods opnieuw moeten worden opgestart.

Notitie

Voordat u de configuratie van uw systeem wijzigt, moet u zich hier vertrouwd maken met het Kubernetes-resourcemodel

De server omhoog en omlaag schalen

Omhoog schalen verwijst naar het verhogen van de waarden voor de vCores en/of geheugeninstellingen van uw server. Omlaag schalen verwijst naar het verlagen van de waarden voor de vCores en/of geheugeninstellingen van uw server.

De instellingen die u gaat instellen, moeten worden overwogen binnen de configuratie die u instelt voor uw Kubernetes-cluster. Zorg ervoor dat u geen waarden instelt waaraan uw Kubernetes-cluster niet kan voldoen. Dit kan leiden tot fouten of onvoorspelbaar gedrag, zoals niet-beschikbaarheid van het database-exemplaar. Als de status van uw server bijvoorbeeld lang in statusupdate blijft nadat u de configuratie hebt gewijzigd, kan het een indicatie zijn dat u de onderstaande parameters instelt op waarden waaraan uw Kubernetes-cluster niet kan voldoen. Als dat het geval is, herstelt u de wijziging of leest u de _troubleshooting_section.

Welke instellingen moet u instellen?

  • Als u minimaal vCore wilt instellen, stelt u in --cores-request.
  • Als u het maximum aantal vCores wilt instellen, stelt u in --cores-limit.
  • Als u minimaal geheugen wilt instellen, stelt u --memory-request
  • Als u het maximale geheugen wilt instellen, stelt u --memory-limit

Let op

Met Kubernetes, het configureren van een limietinstelling zonder de bijbehorende aanvraaginstelling te configureren, dwingt u af dat de aanvraagwaarde dezelfde waarde is als de limiet. Dit kan ertoe leiden dat uw server niet beschikbaar is omdat de pods mogelijk niet opnieuw worden gepland als er geen Kubernetes-knooppunt beschikbaar is met voldoende resources. Om deze situatie te voorkomen, ziet u in de onderstaande voorbeelden hoe u zowel de aanvraag als de limietinstellingen instelt.

De algemene syntaxis is:

az postgres server-arc edit -n <server name> --memory-limit/memory-request/cores-request/cores-limit <val> --k8s-namespace <namespace> --use-k8s

De waarde die u aangeeft voor de geheugeninstelling is een getal gevolgd door een volume-eenheid. Als u bijvoorbeeld 1 Gb wilt aangeven, geeft u 1024Mi of 1Gi aan. Als u een aantal kernen wilt aangeven, geeft u een getal zonder eenheid door.

Voorbeelden met behulp van de Azure CLI

Configureer de server zodanig dat deze niet groter is dan 2 kernen:

 az postgres server-arc edit -n postgres01 --cores-request 1, --cores-limit 2  --k8s-namespace arc --use-k8s

Notitie

Voer de opdracht uit az postgres server-arc update --helpvoor meer informatie over deze parameters.

Voorbeeld van het gebruik van systeemeigen Kubernetes-hulpprogramma's, zoals kubectl

Voer de opdracht uit:

kubectl edit postgresql/<server name> -n <namespace name>

Hiermee gaat u naar de vi editor waar u kunt navigeren en de configuratie kunt wijzigen. Gebruik het volgende om de gewenste instelling toe te wijzen aan de naam van het veld in de specificatie:

Let op

Hieronder ziet u een voorbeeld waarin u kunt zien hoe u de configuratie kunt bewerken. Voordat u de configuratie bijwerkt, moet u de parameters instellen op waarden die door het Kubernetes-cluster kunnen worden uitgevoerd.

Als u bijvoorbeeld de volgende instellingen voor zowel de coördinator als de werkrol wilt instellen op de volgende waarden:

  • Minimum vCore = 2
  • Maximum aantal vCores = 4
  • Minimumgeheugen = 512Mb
  • Maximumgeheugen = 1Gb

U stelt de definitie van uw servergroep zo in dat deze overeenkomt met de onderstaande configuratie:

...
  spec:
  dev: false
  scheduling:
    default:
      resources:
        requests:
          cpu: "2"
          memory: 256Mi
        limits:
          cpu: "4"
          memory: 1Gi
...

Als u niet bekend bent met de vi editor, raadpleegt u een beschrijving van de opdrachten die u mogelijk hier nodig hebt:

  • Bewerkingsmodus: i
  • Navigeren met pijlen
  • Stoppen met bewerken: esc
  • Afsluiten zonder op te slaan: :qa!
  • Afsluiten na opslaan: :qw!

Standaardwaarden herstellen

Als u de kern-/geheugenlimieten/aanvraagparameters opnieuw wilt instellen op de standaardwaarden, bewerkt u deze en geeft u een lege tekenreeks door in plaats van een werkelijke waarde. Als u bijvoorbeeld de parameter voor de kernlimiet opnieuw wilt instellen, voert u de volgende opdrachten uit:

az postgres server-arc edit -n postgres01 --cores-request '' --k8s-namespace arc --use-k8s
az postgres server-arc edit -n postgres01 --cores-limit '' --k8s-namespace arc --use-k8s

of

az postgres server-arc edit -n postgres01 --cores-request '' --cores-limit '' --k8s-namespace arc --use-k8s