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

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 mít negativní dopad na činnost služeb, které poskytujete, pro koncové uživatele. Aby bylo možné postupovat úspěšně, mějte na paměti některé osvědčené postupy, které můžete při vývoji a spouštění aplikací v AKS sledovat.

Tento článek se zaměřuje na spuštění clusteru a úloh z perspektivy pro vývojáře aplikací. Informace o osvědčených postupech pro správu najdete v tématu osvědčené postupy pro izolaci a správu prostředků ve službě Azure Kubernetes (AKS). V tomto článku se naučíte:

  • Požadavky a omezení prostředků pod.
  • Způsoby vývoje a nasazení aplikací s využitím mostu do Kubernetes a Visual Studio Code.

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

Osvědčené postupy

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

Pro správu výpočetních prostředků v rámci clusteru AKS použijte požadavky a omezení pod. Požadavky a omezení na hodnotu a informují Plánovač Kubernetes, který výpočetní prostředky přiřadí k poli pod.

Požadavky na procesor/paměť na pod

Žádosti pod definují sadu množství CPU a paměti, které je potřeba v pravidelných intervalech.

Ve specifikacích pod je osvědčeným postupem a velmi důležité definovat tyto požadavky a omezení na základě výše uvedených informací. Pokud tyto hodnoty nezahrnete, Plánovač Kubernetes se nemůže přihlédnout k prostředkům, které vaše aplikace potřebuje k podpoře při plánování rozhodnutí.

Monitorujte výkon aplikace a upravte požadavky na pody.

  • Pokud podové požadavky podu pody pody podáte, může dostávat snížený výkon.
  • Pokud se žádosti nadcenují, může být u vaší aplikace větší problém s plánováním.

Limity procesoru a paměti podu**

Omezení podů nastavovat maximální množství procesoru a paměti, které může pod používat.

  • Limity paměti definují, které pody by se měly umezit, když jsou uzly nestabilní kvůli nedostatečným prostředkům. Bez správného nastavení limitů se pody zahodí, dokud se nezdviní tlak na prostředky.
  • I když pod může limit procesoru pravidelně překročit, pod se neuhodí 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 umiscení. Toto chování udržuje stav uzlu a minimalizuje dopad na pody, které sdílejí uzel. Při nenastavování limitu podů se jako výchozí nastaví nejvyšší dostupná hodnota v daném uzlu.

Vyhněte se nastavení vyššího limitu podů, než vaše uzly podporují. 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 úspěšně spouštěly další pody.

Monitorujte výkon aplikace v různou dobu v průběhu dne nebo týdne. Určete špičku poptávky a vyrovnejte limity podů s prostředky požadovanými pro splnění maximálních požadavků.

Důležité

Ve specifikacích podů definujte tyto požadavky a omezení na základě výše uvedených informací. Pokud tyto hodnoty nezadáte, zabráníte tím plánovači Kubernetes v účtování prostředků, které vaše aplikace vyžadují, aby vám při plánování pomoci při rozhodování.

Pokud plánovač umístí pod na uzel s nedostatečnými prostředky, výkon aplikace bude snížený. Správci clusteru musí nastavit kvóty prostředků v oboru názvů, který vyžaduje, abyste nastavili požadavky a omezení prostředků. Další informace najdete v tématu kvóty prostředků v clusterech AKS.

Pokud definujete požadavek na procesor nebo limit, hodnota se měří v jednotkách procesoru.

  • 1,0 procesor se rovná jednomu základnímu virtuálnímu jádru na uzlu.
    • Pro GPU se používá stejná míra.
  • Můžete definovat zlomky měřené v millicores. Například 100 milionů je 0,1 základního vCPU jádra.

V následujícím základním příkladu pro jedno NGINX pod vyžádá pod 100 milionů čas procesoru a 128Mi paměti. Omezení prostředků v poli pod jsou nastavená na 250m CPU a 256Mi paměť:

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

Osvědčené postupy

Vývojové týmy by měly nasadit a ladit cluster AKS pomocí mostu na Kubernetes.

S mostem na Kubernetes můžete vyvíjet, ladit a testovat aplikace přímo s clusterem AKS. Vývojáři v týmu spolupracují na sestavování a testování v průběhu životního cyklu aplikace. Můžete nadále používat stávající nástroje, jako je například Visual Studio, nebo Visual Studio Code s přemostěním na rozšíření Kubernetes.

Použití integrovaného vývojového a testovacího procesu s mostem na Kubernetes snižuje potřebu místních testovacích prostředí, jako je minikube. Místo toho vyvíjíte a otestujete cluster AKS, a to i zabezpečené a izolované clustery.

Poznámka

Most do Kubernetes je určený pro použití s aplikacemi, které běží na systémech Linux a uzlech.

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

Osvědčené postupy

Při psaní manifestů YAML nainstalujte a použijte rozšíření VS Code pro Kubernetes. Rozšíření můžete použít také pro řešení integrovaného nasazení, které může vlastníkům aplikací, kteří s clusterem AKS pracují zřídka.

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

  • Intellisense pro prostředky Kubernetes, grafy Helm a šablony.

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

  • Kontrola intellisense pro požadavky na prostředky nebo omezení nastavená ve specifikacích podů:

    VS Code rozšíření pro Kubernetes upozornění na chybějící limity paměti

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 pro správu najdete v tématu Osvědčené postupy operátora clusteru pro izolaci a správu prostředků v Azure Kubernetes Service (AKS).

Pokud chcete implementovat některé z těchto osvědčených postupů, podívejte se na následující články: