Sdílet prostřednictvím


Osvědčené postupy pro základní funkce plánovače ve službě Azure Kubernetes Service (AKS)

Při správě clusterů ve službě Azure Kubernetes Service (AKS) často potřebujete izolovat týmy a úlohy. Plánovač Kubernetes umožňuje řídit distribuci výpočetních prostředků nebo omezit dopad událostí údržby.

Tento článek osvědčených postupů se zaměřuje na základní funkce plánování Kubernetes pro operátory clusteru. V tomto článku získáte informace o těchto tématech:

  • Použití kvót prostředků k poskytnutí pevného množství prostředků týmům nebo úlohám
  • Omezení dopadu plánované údržby pomocí rozpočtů přerušení podů

Vynucení kvót prostředků

Pokyny k osvědčeným postupům

Naplánujte a použijte kvóty prostředků na úrovni oboru názvů. Pokud pody nedefinují požadavky na prostředky a limity, zamítněte nasazení. Monitorujte využití prostředků a podle potřeby upravte kvóty.

Požadavky na prostředky a omezení se umisťují do specifikace podu. Žádosti používá plánovač Kubernetes v době nasazení k vyhledání dostupného uzlu v clusteru. Omezení a požadavky fungují na úrovni jednotlivých podů. Další informace o tom, jak tyto hodnoty definovat, najdete v tématu Definování požadavků a omezení prostředků podů.

Pokud chcete poskytnout způsob, jak rezervovat a omezit zdroje v rámci vývojového týmu nebo projektu, měli byste použít kvóty zdrojů. Tyto kvóty jsou definovány v oboru názvů a lze je použít k nastavení kvót následujícím postupem:

  • Výpočetní prostředky, jako jsou procesory a paměť nebo GPU.
  • Prostředky úložiště, včetně celkového počtu svazků nebo množství místa na disku pro danou třídu úložiště.
  • Je možné vytvořit počet objektů, například maximální počet tajných kódů, služeb nebo úloh.

Kubernetes nepřetěžuje prostředky. Jakmile celkový součet požadavků na kumulativní prostředek překročí přiřazenou kvótu, všechna další nasazení nebudou úspěšná.

Při definování kvót prostředků musí všechny pody vytvořené v oboru názvů poskytovat omezení nebo požadavky ve specifikacích podů. Pokud tyto hodnoty nezadají, můžete nasazení odmítnout. Místo toho můžete pro obor názvů nakonfigurovat výchozí požadavky a omezení.

Následující příklad manifestu YAML s názvem dev-app-team-quotas.yaml nastaví pevný limit celkového počtu 10 procesorů, 20Gi paměti a 10 podů:

apiVersion: v1
kind: ResourceQuota
metadata:
  name: dev-app-team
spec:
  hard:
    cpu: "10"
    memory: 20Gi
    pods: "10"

Tuto kvótu prostředků můžete použít zadáním oboru názvů, jako jsou vývojové aplikace:

kubectl apply -f dev-app-team-quotas.yaml --namespace dev-apps

Spolupracujte s vývojáři a vlastníky aplikací, abyste porozuměli jejich potřebám a použili příslušné kvóty prostředků.

Další informace o dostupných objektech prostředků, oborech a prioritách najdete v tématu Kvóty prostředků v Kubernetes.

Plánování dostupnosti s využitím rozpočtů přerušení podů

Pokyny k osvědčeným postupům

Pokud chcete zachovat dostupnost aplikací, definujte rozpočty přerušení podů (PDB), abyste měli jistotu, že je v clusteru k dispozici minimální počet podů.

Existují dvě rušivé události, které způsobují odebrání podů:

Nedobrovolné přerušení

Nedovolné přerušení jsou události nad rámec typické kontroly operátora clusteru nebo vlastníka aplikace. Zahrnovat:

  • Selhání hardwaru na fyzickém počítači
  • Poplach jádra
  • Odstranění virtuálního počítače uzlu

Nedovolné přerušení může zmírnit:

  • Použití více replik podů v nasazení
  • Spouštění více uzlů v clusteru AKS

Dobrovolné přerušení

Dobrovolné přerušení služeb jsou události požadované operátorem clusteru nebo vlastníkem aplikace. Zahrnovat:

  • Upgrady clusterů
  • Aktualizovaná šablona nasazení
  • Náhodné odstranění podu

Kubernetes poskytuje rozpočty na přerušení podů pro dobrovolné přerušení a umožňuje naplánovat, jak nasazení nebo sady replik reagují, když dojde k dobrovolnému přerušení. Pomocí rozpočtů přerušení podů můžou operátoři clusteru definovat minimální dostupný nebo maximální počet nedostupných prostředků.

Pokud upgradujete cluster nebo aktualizujete šablonu nasazení, plánovač Kubernetes naplánuje na jiných uzlech další pody, než povolí dobrovolné přerušení událostí pokračovat. Plánovač čeká na restartování uzlu, dokud se definovaný počet podů úspěšně neplánuje na jiných uzlech v clusteru.

Podívejme se na příklad sady replik s pěti pody, na kterých běží NGINX. Podům v sadě replik se přiřadí popisek app: nginx-frontend. Během dobrovolné události přerušení, jako je upgrade clusteru, chcete zajistit, aby běžely aspoň tři pody. Následující manifest YAML pro objekt PodDisruptionBudget definuje tyto požadavky:

apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
   name: nginx-pdb
spec:
   minAvailable: 3
   selector:
    matchLabels:
      app: nginx-frontend

Můžete také definovat procento, například 60 %, což umožňuje automaticky kompenzovat kapacitu sady replik vertikálním navýšením počtu podů.

V sadě replik můžete definovat maximální počet nedostupných instancí. Opět je možné definovat procento maximálního nedostupného podu. Následující manifest YAML pro přerušení rozpočtu podů definuje, že není k dispozici více než dva pody v sadě replik:

apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
   name: nginx-pdb
spec:
   maxUnavailable: 2
   selector:
    matchLabels:
      app: nginx-frontend

Jakmile je rozpočet přerušení podu definovaný, vytvoříte ho v clusteru AKS stejně jako u jakéhokoli jiného objektu Kubernetes:

kubectl apply -f nginx-pdb.yaml

Spolupracujte s vývojáři a vlastníky aplikací, abyste porozuměli jejich potřebám a použili odpovídající rozpočty přerušení podů.

Další informace o používání rozpočtů přerušení podů najdete v tématu Určení rozpočtu přerušení aplikace.

Další kroky

Tento článek se zaměřuje na základní funkce plánovače Kubernetes. Další informace o operacích clusteru v AKS najdete v následujících osvědčených postupech: