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 (AKS) je často potřeba izolovat týmy a úlohy. Plánovač Kubernetes vám umožňuje řídit distribuci výpočetních prostředků nebo omezit dopad událostí údržby.

Tento článek o osvědčených postupech 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
  • Omezte dopad plánované údržby pomocí rozpočtů přerušení pod.

Vynutilit kvóty prostředků

Osvědčené postupy

Plánování a použití kvót prostředků na úrovni oboru názvů. Pokud lusky nedefinují požadavky a omezení prostředků, zamítnout nasazení. Monitorujte využití prostředků a podle potřeby upravte kvóty.

Požadavky na prostředky a omezení jsou umístěné ve specifikaci pod. Omezení používá Plánovač Kubernetes v době nasazování k nalezení dostupného uzlu v clusteru. Omezení a požadavky fungují na úrovni jednotlivých pod. Další informace o tom, jak definovat tyto hodnoty, najdete v tématu definice pod a požadavky na prostředky a omezení .

Chcete-li zajistit způsob, jak rezervovat a omezit prostředky v rámci vývojového týmu nebo projektu, měli byste použít kvóty prostředků. Tyto kvóty jsou definované v oboru názvů a dají se použít k nastavení kvót na následujícím základě:

  • Výpočetní prostředky, jako je například procesor 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ě.
  • Počet objektů, například maximální počet tajných kódů, služeb nebo úloh, je možné vytvořit.

Kubernetes nevyu i přesouvá prostředky. Jakmile celková hodnota požadavku na kumulativní prostředek projde přiřazenou kvótou, 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 nezadá, můžete nasazení odmítnout. Místo toho můžete nakonfigurovat výchozí požadavky a omezení pro obor názvů.

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ů, například dev-apps:

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 přijímili 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ů

Osvědčené postupy

Pokud chcete zachovat dostupnost aplikací, definujte rozpočty přerušení podů , abyste se ujistili, ž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í

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

  • Selhání hardwaru fyzického počítače
  • Kernel panic
  • Odstranění virtuálního počítače uzlu

Nedobrovolné přerušení lze zmírnit:

  • Použití několika replik v rámci nasazení.
  • Spuštění více uzlů v clusteru AKS.

Dobrovolné výpadky

Dobrovolné přerušení jsou události vyžádané operátorem clusteru nebo vlastníkem aplikace. Připojit

  • Upgrady clusteru
  • Aktualizovaná šablona nasazení
  • Náhodné odstranění pod

Kubernetes poskytuje rozpočty přerušení v případě dobrovolných výpadků a umožňuje vám naplánovat, jak nasazení nebo sady replik reagují na odpověď, když dojde k dobrovolnému přerušení. Pomocí rozpočtů přerušení v rámci mohou operátoři clusteru definovat minimální dostupný nebo maximální počet nedostupných zdrojů.

Pokud upgradujete cluster nebo aktualizujete šablonu nasazení, Plánovač Kubernetes naplánuje další lusky na jiných uzlech, než umožní pokračovat v akcích dobrovolného přerušení. Plánovač počká, až se uzel restartuje, dokud se neúspěšně naplánuje definovaný počet lusků na jiných uzlech v clusteru.

Pojďme se podívat na příklad sady replik s pěti lusky, které používají NGINX. V luskech sady replik se přiřadí popisek app: nginx-frontend . Během dobrovolné události přerušení, jako je například upgrade clusteru, chcete zajistit, aby běžely alespoň tři lusky. Následující manifest YAML pro objekt PodDisruptionBudget definuje tyto požadavky:

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

Můžete také definovat procento, například 60%, které vám umožní automaticky kompenzovat sadu replik a škálovat tak počet lusků.

V sadě replik můžete definovat maximální počet nedostupných instancí. Znovu je možné definovat i procento pro maximální nedostupné lusky. Následující manifest YAML s dopadem na narušení rozpočtu definuje, že není k dispozici více než dvě lusky v sadě repliky:

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

Jakmile je rozpočet přerušení podů 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 narušili příslušné rozpočty podů.

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

Další kroky

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