Vertikální navýšení a snížení kapacity serveru Azure Database for PostgreSQL pomocí rozhraní příkazového řádku (az nebo kubectl)

Někdy může být potřeba změnit charakteristiky nebo definici serveru. Příklad:

  • Vertikální navýšení nebo snížení kapacity počtu virtuálních jader, které server používá
  • Vertikální navýšení nebo snížení kapacity paměti, kterou server používá

Tato příručka vysvětluje, jak škálovat virtuální jádra nebo paměť.

Vertikální navýšení nebo snížení kapacity virtuálního jádra nebo paměti vašeho serveru znamená, že máte možnost nastavit minimální nebo maximální hodnotu pro každé nastavení virtuálních jader a paměti. Pokud chcete server nakonfigurovat tak, aby používal určitý počet virtuálních jader nebo konkrétní velikost paměti, nastavili byste minimální nastavení rovna maximálnímu nastavení. Před zvýšením hodnoty nastavené pro virtuální jádra a paměť je nutné zajistit, aby

  • máte dostatek prostředků dostupných ve fyzické infrastruktuře, která hostuje vaše nasazení a
  • úlohy kompletované do stejného systému nekonkurují stejným virtuálním jádrům ani paměti.

Poznámka:

Jako funkce ve verzi Preview platí, že technologie uvedená v tomto článku podléhá dodatečným podmínkám použití pro verze Microsoft Azure Preview.

Nejnovější aktualizace jsou k dispozici v poznámkách k verzi.

Zobrazení aktuální definice serveru

Pokud chcete zobrazit aktuální definici serveru a zjistit, jaké jsou aktuální nastavení virtuálních jader a paměti, spusťte některý z následujících příkazů:

Pomocí Azure CLI (az)

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

Rozhraní příkazového řádku s kubectl

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

Vrátí konfiguraci vaší skupiny serverů. Pokud jste server vytvořili s výchozím nastavením, měli byste vidět následující definici:

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

Interpretace definice serveru

V definici serveru je oddíl, který obsahuje nastavení minimálního nebo maximálního počtu virtuálních jader na uzel a minimální nebo maximální paměť na uzel, je oddíl plánování . V této části se maximální nastavení zachová v pododdílu s názvem "limity" a minimální nastavení se zachovají v pododdílu s názvem "requests".

Pokud nastavíte minimální nastavení, která se liší od maximálního nastavení, konfigurace zaručuje, že je váš server přidělen požadovaným prostředkům v případě potřeby. Nepřekročí vámi nastavené limity.

Prostředky (virtuální jádra a paměť), které bude váš server skutečně používat, jsou až do maximálního nastavení a závisí na úlohách a prostředcích dostupných v clusteru. Pokud nastavení nezasáhnete maximálním limitem, váš server může používat až všechny prostředky, na které cluster Kubernetes přiděluje uzlům Kubernetes, na které je váš server naplánovaný.

Ve výchozí konfiguraci je pouze minimální paměť nastavená na 256Mi, protože se doporučuje spustit server PostgreSQL.

Poznámka:

Nastavení minimální hodnoty neznamená, že server bude nutně používat toto minimum. To znamená, že pokud ho server potřebuje, je zaručeno, že bude přidělen alespoň toto minimum. Předpokládejme například, že jsme nastavili --minCpu 2. Neznamená to, že server bude vždy používat alespoň 2 virtuální jádra. Místo toho to znamená, že server může začít používat méně než 2 virtuální jádra, pokud toho moc nepotřebuje a je zaručeno, že bude přidělen alespoň 2 virtuální jádra, pokud je později potřebuje. Z toho vyplývá, že cluster Kubernetes přiděluje prostředky jiným úlohám takovým způsobem, že může serveru přidělit 2 virtuální jádra, pokud je někdy potřebuje. Vertikální navýšení a snížení kapacity také není online operace, protože vyžaduje restartování podů Kubernetes.

Poznámka:

Než upravíte konfiguraci systému, nezapomeňte se sem seznámit s modelem prostředků Kubernetes.

Vertikální navýšení a snížení kapacity serveru

Vertikální navýšení kapacity označuje zvýšení hodnot pro nastavení virtuálních jader nebo paměti vašeho serveru. Vertikální snížení kapacity označuje snížení hodnot pro nastavení virtuálních jader nebo paměti vašeho serveru.

Nastavení, která se chystáte nastavit, se musí brát v úvahu v rámci konfigurace, kterou jste nastavili pro cluster Kubernetes. Ujistěte se, že nenastavujete hodnoty, které cluster Kubernetes nebude moct splňovat. To může vést k chybám nebo nepředvídatelným chováním, jako je nedostupnost instance databáze. Pokud například stav serveru zůstane po dlouhou dobu po změně konfigurace v aktualizaci stavu, může to být označení, že jste nastavili následující parametry na hodnoty, které váš cluster Kubernetes nesplňuje. V takovém případě vraťte změnu nebo si přečtěte _troubleshooting_section.

Jaká nastavení byste měli nastavit?

  • Pokud chcete nastavit minimální počet virtuálních jader, nastavte --cores-request.
  • Pokud chcete nastavit maximální počet virtuálních jader, nastavte --cores-limit.
  • Pokud chcete nastavit minimální paměť, nastavte --memory-request
  • Pokud chcete nastavit maximální paměť, nastavte --memory-limit

Upozornění

V Kubernetes nakonfigurujete nastavení limitu bez konfigurace odpovídajícího nastavení požadavku vynutí, aby hodnota požadavku byla stejná jako limit. To může vést k nedostupnosti serveru, protože jeho pody nemusí být přeplánované, pokud není k dispozici uzel Kubernetes s dostatečnými prostředky. Abyste se této situaci vyhnuli, následující příklady ukazují, jak nastavit požadavek i nastavení limitu.

Obecná syntaxe je:

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

Hodnota, kterou určíte pro nastavení paměti, je číslo následované jednotkou svazku. Například pro označení 1 Gb byste označili 1024Mi nebo 1Gi. Pokud chcete označit počet jader, stačí předat číslo bez jednotky.

Příklady použití Azure CLI

Nakonfigurujte server tak, aby nepřekračoval 2 jádra:

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

Poznámka:

Podrobnosti o těchto parametrech získáte spuštěním az postgres server-arc update --helppříkazu .

Příklad použití nativních nástrojů Kubernetes, jako je kubectl

Spusťte příkaz:

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

To vás provede v editoru vi , kde můžete procházet a měnit konfiguraci. Pomocí následujícího příkazu namapujte požadované nastavení na název pole ve specifikaci:

Upozornění

Níže je uvedený příklad, který ukazuje, jak můžete konfiguraci upravit. Před aktualizací konfigurace nezapomeňte nastavit parametry na hodnoty, které může cluster Kubernetes respektovat.

Pokud například chcete nastavit následující nastavení pro koordinátora i role pracovního procesu na následující hodnoty:

  • Minimální počet virtuálních jader = 2
  • Maximální počet virtuálních jader = 4
  • Minimální paměť = 512Mb
  • Maximální paměť = 1Gb

Nastavili byste definici skupiny serverů tak, aby odpovídala následující konfiguraci:

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

Pokud editor neznátevi, přečtěte si popis příkazů, které možná budete potřebovat:

  • Režim úprav: i
  • Pohyb pomocí šipek
  • Ukončit úpravy: esc
  • Ukončit bez uložení: :qa!
  • Po uložení ukončete: :qw!

Obnovit výchozí hodnoty

Pokud chcete resetovat parametry omezení jádra/paměti/požadavků na výchozí hodnoty, upravte je a předejte prázdný řetězec místo skutečné hodnoty. Pokud například chcete resetovat parametr limitu počtu jader, spusťte následující příkazy:

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

or

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