Osvědčené postupy při správě prostředků ve službě Azure Kubernetes Service (AKS) pro vývojáře aplikací

Při vývoji a spouštění aplikací ve službě Azure Kubernetes Service (AKS) je potřeba zvážit několik klíčových oblastí. Způsob správy nasazení aplikací může negativně ovlivnit prostředí služeb, které poskytujete koncovým uživatelům.

Tento článek se zaměřuje na spouštění clusterů a úloh z pohledu vývojáře aplikací. Informace o osvědčených postupech správy najdete v tématu Osvědčené postupy operátora clusteru pro izolaci a správu prostředků ve službě Azure Kubernetes Service (AKS).

Tento článek se zabývá následujícími tématy:

  • Požadavky a omezení prostředků podů
  • Způsoby vývoje, ladění a nasazování aplikací pomocí bridge na Kubernetes a Visual Studio Code

Definování požadavků a omezení prostředků podů

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

Nastavte požadavky a omezení podů na všech podech v manifestech YAML. Pokud cluster AKS používá kvóty prostředků a tyto hodnoty nedefinujete, může být vaše nasazení odmítnuto.

Ke správě výpočetních prostředků v clusteru AKS použijte požadavky a omezení podů. Požadavky a limity podů informují plánovač Kubernetes o výpočetních prostředcích, které se mají přiřadit k podu.

Požadavky na procesor a paměť podů

Požadavky podů definují nastavené množství procesoru a paměti, které pod potřebuje pravidelně.

Ve specifikacích podů je důležité definovat tyto požadavky a limity na základě výše uvedených informací. Pokud tyto hodnoty nezahrnete, plánovač Kubernetes nemůže zvážit prostředky, které vaše aplikace vyžadují, aby vám pomohl s rozhodováním o plánování.

Monitorujte výkon aplikace a upravte požadavky na pody. Pokud podceňujete požadavky na pody, může vaše aplikace obdržet snížený výkon kvůli nadměrnému plánování uzlu. Pokud jsou požadavky přehodnocené, může mít vaše aplikace větší potíže s plánováním.

Limity procesoru a paměti podů

Limity podů nastavily maximální množství procesoru a paměti, které může pod používat. Limity paměti definují, které pody by se měly odebrat, když jsou uzly nestabilní kvůli nedostatečným prostředkům. Bez nastavených správných limitů se pody odeberou, dokud se nezvedne tlak na prostředky. I když pod může limit procesoru pravidelně překročit, pod se neodebere kvůli překročení limitu procesoru.

Omezení podů definují, kdy pod ztratí kontrolu nad spotřebou prostředků. Když tento limit překročí, pod se označí k odebrání. Toto chování udržuje stav uzlu a minimalizuje dopad na pody sdílející uzel. Pokud limit podu nenastavíte, nastaví se výchozí hodnota na nejvyšší dostupnou hodnotu na daném uzlu.

Vyhněte se nastavení limitu podu vyššího, než můžou uzly podporovat. Každý uzel AKS si vyhrazuje nastavené množství procesoru a paměti pro základní komponenty Kubernetes. Vaše aplikace se může pokusit spotřebovat příliš mnoho prostředků na uzlu, aby se ostatní pody úspěšně spustily.

Monitorujte výkon aplikace v různých časech v průběhu dne nebo týdne. Určete časy poptávky ve špičce a přirovnejte limity podů k prostředkům potřebným ke splnění maximálních potřeb.

Důležité

Ve specifikacích podů definujte tyto požadavky a limity na základě výše uvedených informací. Zahrnutí těchto hodnot brání plánovači Kubernetes v účtování prostředků, které vaše aplikace vyžadují, aby vám pomohl s rozhodováním o plánování.

Pokud plánovač umístí pod na uzel s nedostatečnými prostředky, sníží se výkon aplikace. Správci clusteru musí pro obor názvů nastavit kvóty prostředků, které vyžadují nastavení požadavků a omezení prostředků. Další informace najdete v tématu Kvóty prostředků v clusterech AKS.

Při definování požadavku nebo limitu procesoru se hodnota měří v jednotkách procesoru.

  • Procesor 1.0 odpovídá jednomu základnímu virtuálnímu jádru procesoru na uzlu.
    • Stejné měření se používá pro GPU.
  • Můžete definovat zlomky měřené v milicores. Například 100 m je 0,1 základního jádra vCPU.

V následujícím základním příkladu jednoho podu NGINX pod požaduje pod 100 m času procesoru a 128Mi paměti. Omezení prostředků pro pod jsou nastavená na 250 m procesoru a 256Mi paměti.

kind: Pod
apiVersion: v1
metadata:
  name: mypod
spec:
  containers:
  - name: mypod
    image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
    resources:
      requests:
        cpu: 100m
        memory: 128Mi
      limits:
        cpu: 250m
        memory: 256Mi

Další informace o měřeních a přiřazeních prostředků najdete v tématu Správa výpočetních prostředků pro kontejnery.

Vývoj a ladění aplikací v clusteru AKS

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

Vývojové týmy by měly nasazovat a ladit cluster AKS pomocí bridge to Kubernetes.

Pomocí bridge to Kubernetes můžete vyvíjet, ladit a testovat aplikace přímo v clusteru AKS. Vývojáři v rámci týmu spolupracují na sestavování a testování v průběhu životního cyklu aplikace. Stávající nástroje, jako je Visual Studio nebo Visual Studio Code, můžete dál používat s rozšířením Bridge to Kubernetes.

Použití integrovaného procesu vývoje a testování s bridge to Kubernetes snižuje potřebu místních testovacích prostředí, jako je minikube. Místo toho vyvíjíte a testujete cluster AKS, a to i v zabezpečených a izolovaných clusterech.

Poznámka:

Most na Kubernetes je určený pro použití s aplikacemi běžícími na podech a uzlech Linuxu.

Použití rozšíření Visual Studio Code (VS Code) pro Kubernetes

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

Nainstalujte a použijte rozšíření VS Code pro Kubernetes při psaní manifestů YAML. Rozšíření můžete použít také pro integrované řešení nasazení, které může vlastníkům aplikací, kteří s clusterem AKS často pracují, pomoct.

Rozšíření Visual Studio Code pro Kubernetes pomáhá vyvíjet a nasazovat aplikace do AKS. Rozšíření poskytuje následující funkce:

  • IntelliSense pro prostředky Kubernetes, charty Helm a šablony

  • Možnost procházet, nasazovat a upravovat možnosti pro prostředky Kubernetes z VS Code.

  • IntelliSense kontroluje požadavky na prostředky nebo limity nastavené ve specifikacích podů:

    VS Code extension for Kubernetes warning about missing memory limits

Další kroky

Tento článek se zaměřuje na to, jak spouštět cluster a úlohy z pohledu operátora clusteru. Informace o osvědčených postupech správy najdete v tématu Osvědčené postupy operátora clusteru pro izolaci a správu prostředků ve službě Azure Kubernetes Service (AKS).

Pokud chcete implementovat některé z těchto osvědčených postupů, přečtěte si téma Vývoj s využitím bridge to Kubernetes.