Automatické škálování SLUŽBY HDInsight v clusterech AKS

Důležité

Tato funkce je aktuálně dostupná jako ukázková verze. Doplňkové podmínky použití pro Microsoft Azure Preview obsahují další právní podmínky, které se vztahují na funkce Azure, které jsou v beta verzi, ve verzi Preview nebo ještě nejsou vydány v obecné dostupnosti. Informace o této konkrétní verzi Preview najdete v tématu Azure HDInsight o službě AKS ve verzi Preview. Pokud máte dotazy nebo návrhy funkcí, odešlete prosím žádost na AskHDInsight s podrobnostmi a sledujte nás o dalších aktualizacích v komunitě Azure HDInsight.

Určení velikosti libovolného clusteru tak, aby splňovalo výkon úloh a spravuje náklady předem, je vždy složité a těžko určit! Jednou z lukrativních výhod vytváření datového jezera přes Cloud je jeho elasticita, což znamená použití funkce automatického škálování k maximalizaci využití prostředků v ruce. Automatické škálování pomocí Kubernetes je jedním z klíčových klíčů k vytvoření ekosystému optimalizovaného pro náklady. S různými vzory využití v libovolném podniku se můžou v průběhu času měnit zatížení clusteru, což by mohlo vést k tomu, že clustery jsou nedostatečně zřízené (lousovatelní výkon) nebo nadměrné (zbytečné náklady způsobené nečinnými prostředky).

Funkce automatického škálování nabízená ve službě HDInsight v AKS může automaticky zvýšit nebo snížit počet pracovních uzlů ve vašem clusteru. Automatické škálování používá metriky clusteru a zásady škálování používané zákazníky.

Tato funkce je vhodná pro klíčové úlohy, které můžou mít

  • Proměnlivé nebo nepředvídatelné vzorce provozu a vyžadují smlouvy SLA s vysokým výkonem a škálováním nebo
  • Předem určený plán, aby byly požadované pracovní uzly k dispozici pro úspěšné spuštění úloh v clusteru.

Automatické škálování pomocí HDInsightu v clusterech AKS zpřístupňuje clustery nákladově efektivní a elastické v Azure.

Díky automatickému škálování můžou zákazníci vertikálně snížit kapacitu clusterů, aniž by to mělo vliv na úlohy. Je povolená s pokročilými funkcemi, jako je řádné vyřazení z provozu a doba chlazení. Tyto funkce umožňují uživatelům provádět informované volby o přidávání a odebírání uzlů na základě aktuálního zatížení clusteru.

Jak to funguje

Tato funkce funguje škálováním počtu uzlů v rámci přednastavených limitů na základě metrik clusteru nebo definovaného plánu operací vertikálního navýšení a snížení kapacity. Existují dva typy podmínek pro aktivaci událostí automatického škálování: triggery založené na prahových hodnotách pro různé metriky výkonu clusteru (označované jako škálování založené na zatížení) a triggery založené na čase (označované jako škálování založené na plánu).

Škálování na základě zatížení změní počet uzlů v clusteru v rozsahu, který nastavíte, aby se zajistilo optimální využití procesoru a minimalizovalo provozní náklady.

Škálování na základě plánu mění počet uzlů v clusteru na základě plánu operací vertikálního navýšení a snížení kapacity.

Poznámka:

Automatické škálování nepodporuje změnu typu skladové položky existujícího clusteru.

Kompatibilita clusteru

Následující tabulka popisuje typy clusterů, které jsou kompatibilní s funkcí automatického škálování a co je dostupné nebo plánované.

Úloha Na základě zatížení Podle plánu
Flink Naplánováno Ano
Trino Ano** Ano**
Spark Ano** Ano**

**Řádné vyřazení z provozu je možné konfigurovat.

Metody škálování

  • Škálování na základě plánu:

    • Pokud se očekává, že se vaše úlohy budou spouštět podle pevných plánů a předvídatelné doby trvání nebo pokud očekáváte nízké využití v určitých časech dne, například testovací a vývojová prostředí v pracovní době, koncové pracovní doby.

      Snímek obrazovky znázorňující, jak vybrat škálování na základě plánu

  • Škálování na základě zatížení:

    • Pokud vzorce zatížení během dne výrazně a nepředvídatelně kolísají, například zpracování dat objednávek s náhodnými výkyvy zatížení na základě různých faktorů.

      Snímek obrazovky znázorňující výběr škálování na základě zatížení

      S novou možností pravidla škálování můžete nyní přizpůsobit pravidla škálování.

      Snímek obrazovky znázorňující, jak nakonfigurovat pravidlo škálování při škálování na základě zatížení

      Snímek obrazovky znázorňující, jak přidat pravidla v konfiguraci pravidel škálování pro škálování na základě zatížení

      Tip

      • Pravidla vertikálního navýšení kapacity mají přednost při aktivaci jednoho nebo více pravidel. I když jen jedno z pravidel vertikálního navýšení kapacity navrhuje, aby cluster byl nedostatečně zřízený, cluster se pokusí vertikálně navýšit kapacitu. Aby bylo možné vertikálně snížit kapacitu, nemělo by se aktivovat žádné pravidlo vertikálního navýšení kapacity.

Podmínky škálování na základě zatížení

Když se zjistí následující podmínky, automaticky škáluje žádost o škálování.

Vertikální navýšení kapacity Vertikální snížení kapacity
Přidělená jádra jsou po dobu 5 minut delší než 80 % intervalu dotazování (1 minutové období kontroly). Přidělená jádra jsou kratší nebo rovna 20 % pro 5minutový interval dotazování (1 minutové období kontroly).
  • V případě vertikálního navýšení kapacity automaticky škáluje požadavek na vertikální navýšení kapacity, aby se přidal požadovaný počet uzlů. Vertikální navýšení kapacity vychází z toho, kolik nových pracovních uzlů je potřeba ke splnění aktuálních požadavků na procesor a paměť. Tato hodnota je omezena na maximální počet pracovních uzlů nastavených.

  • V případě vertikálního snížení kapacity vydá automatické škálování žádost o odebrání některých uzlů. Aspekty vertikálního snížení kapacity zahrnují počet podů na uzel, aktuální požadavky na procesor a paměť a pracovní uzly, které jsou kandidáty na odebrání na základě aktuálního spuštění úlohy. Operace vertikálního snížení kapacity nejprve vyřadí uzly z provozu a pak je odebere z clusteru.

    Důležité

    Modul pravidel automatického škálování proaktivně vyprázdní staré události každých 30 minut za účelem optimalizace systémové paměti. V důsledku toho existuje horní mez 30 minut v intervalu pravidla škálování. Aby se zajistilo konzistentní a spolehlivé spouštění akcí škálování, je nezbytné nastavit interval pravidla škálování na hodnotu, která je nižší než limit. Dodržováním tohoto návodu můžete zaručit hladký a efektivní proces škálování při efektivní správě systémových prostředků.

Metriky clusteru

Automatické škálování nepřetržitě monitoruje cluster a shromažďuje následující metriky pro automatické škálování na základě zatížení:

Metriky clusteru dostupné pro účely škálování

Metrický Popis
Procento dostupných jader Celkový počet jader dostupných v clusteru v porovnání s celkovým počtem jader v clusteru.
Dostupné procento paměti Celková paměť (v MB) dostupná v clusteru ve srovnání s celkovým množstvím paměti v clusteru.
Procento přidělených jader Celkový počet jader přidělených v clusteru v porovnání s celkovým počtem jader v clusteru.
Přidělené procento paměti Množství paměti přidělené v clusteru v porovnání s celkovým množstvím paměti v clusteru.

Ve výchozím nastavení se výše uvedené metriky kontrolují každých 300 sekund, je také možné nakonfigurovat při přizpůsobení intervalu hlasování s možností přizpůsobení automatického škálování. Automatické škálování provádí rozhodnutí o vertikálním navýšení nebo snížení kapacity na základě těchto metrik.

Poznámka:

Ve výchozím nastavení automatické škálování používá výchozí kalkulačku prostředků pro YARN pro Apache Spark. Škálování na základě zatížení je k dispozici pro clustery Apache Spark.

Řádné vyřazení z provozu

Podniky potřebují způsoby, jak dosáhnout petabajtového škálování s automatickým škálováním a řádně vyřadit prostředky z provozu, když už nejsou potřeba. V takovém scénáři je užitečné funkce elegantního vyřazení z provozu.

Řádné vyřazení z provozu umožňuje dokončení úloh i po aktivaci automatického škálování vyřazení pracovních uzlů z provozu. Tato funkce umožňuje uzly dál zřizovat, dokud nebudou dokončeny úlohy.

  • Trino : Pracovní procesy mají ve výchozím nastavení povolené řádné vyřazení z provozu. Koordinátor umožňuje ukončení pracovního procesu dokončit své úkoly po nakonfigurovanou dobu před odebráním pracovního procesu z clusteru. Časový limit můžete nakonfigurovat buď pomocí nativního parametru shutdown.grace-periodTrino, nebo na stránce konfigurace služby webu Azure Portal.

  • Apache Spark : Vertikální snížení kapacity může ovlivnit nebo zastavit všechny spuštěné úlohy v clusteru. Pokud na webu Azure Portal povolíte řádné vyřazení z provozu, zahrnuje řádné vyřazení uzlů YARN a zajistí, že se veškerá probíhající práce na pracovním uzlu dokončí před odebráním uzlu ze služby HDInsight v clusteru AKS.

Období chladnutí

Aby se zabránilo průběžným operacím vertikálního navýšení kapacity, modul automatického škálování před zahájením jiné sady operací vertikálního navýšení kapacity počká na konfigurovatelný interval. Výchozí hodnota je nastavená na 180 sekund.

Poznámka:

  • Ve vlastních pravidlech škálování nemůže mít žádný aktivační událost interval aktivační události delší než 30 minut. Jakmile dojde k události automatického škálování, doba čekání před vynucením jiné zásady škálování.
  • Období ochladnutí by mělo být větší než interval zásad, aby se metriky clusteru mohly resetovat.

Začínáme

  1. Aby automatické škálování fungovalo, musíte přiřadit msi oprávnění vlastníka nebo přispěvatele (použité při vytváření clusteru) na úrovni clusteru pomocí IAM v levém podokně.

  2. Projděte si následující obrázek a postup přidání přiřazení role.

    Snímek obrazovky znázorňující, jak přidat přiřazení role

  3. Vyberte přidání přiřazení role.

    1. Typ přiřazení: Role privilegovaného správce
    2. Role: Vlastník nebo Přispěvatel
    3. Členové: Zvolte spravovanou identitu a vyberte spravovanou identitu přiřazenou uživatelem, která byla udělena během fáze vytváření clusteru.
    4. Přiřaďte roli.

Vytvoření clusteru s automatickým škálováním na základě plánu

  1. Po vytvoření fondu clusterů vytvořte nový cluster s požadovanou úlohou (na typu clusteru) a proveďte další kroky v rámci normálního procesu vytváření clusteru.

  2. Na kartě Konfigurace povolte přepínač automatického škálování.

  3. Výběr automatického škálování na základě plánu

  4. Vyberte časové pásmo a potom klikněte na + Přidat pravidlo.

  5. Vyberte dny v týdnu, na které má nová podmínka platit.

  6. Upravte čas, kdy se má podmínka projevit, a počet uzlů, na které se má cluster škálovat.

    Snímek obrazovky znázorňující, jak začít s automatickým škálováním na základě plánu

    Poznámka:

    • Aby automatické škálování fungovalo, měl by mít uživatel v MSI clusteru roli vlastníka nebo přispěvatele.
    • Výchozí hodnota definuje počáteční velikost clusteru při jeho vytvoření.
    • Rozdíl mezi dvěma plány je ve výchozím nastavení nastavený na 30 minut.
    • Hodnota času se řídí 24hodinovým formátem.
    • V případě průběžného intervalu delšího než 24 hodin napříč dny musíte nastavit plán automatického škálování napříč dny a automatické škálování předpokládá, že 23:59 je 00:00 (se stejným počtem uzlů) přesahující dva dny od 22:00 do 23:59, 00:00 až 02:00 jako 22:00 až 02:00.
    • Plány jsou ve výchozím nastavení nastavené ve standardu UTC (Coordinated Universal Time). V rozevíracím seznamu můžete vždy aktualizovat časové pásmo, které odpovídá místnímu časovému pásmu. Pokud jste v časovém pásmu, které sleduje letní úspory, plán se automaticky neupraví, budete muset odpovídajícím způsobem spravovat aktualizace plánu.

Vytvoření clusteru s automatickým škálováním na základě zatížení

  1. Po vytvoření fondu clusterů vytvořte nový cluster s požadovanou úlohou (na typu clusteru) a proveďte další kroky v rámci normálního procesu vytváření clusteru.

  2. Na kartě Konfigurace povolte přepínač automatického škálování.

  3. Výběr automatického škálování na základě zatížení

  4. Na základě typu úlohy máte možnosti přidat časový limit pro řádné vyřazení z provozu, období ochladnutí.

  5. Vyberte minimální a maximální počet uzlů a v případě potřeby nakonfigurujte pravidla škálování tak, aby přizpůsobila automatické škálování vašim potřebám.

    Snímek obrazovky znázorňující, jak začít s automatickým škálováním na základě zatížení

    Tip

    • Vaše předplatné má kvótu kapacity pro každou oblast. Celkový počet jader hlavních uzlů a maximální počet pracovních uzlů nesmí překročit kvótu kapacity. Tato kvóta je však měkkým limitem; Kdykoli můžete vytvořit lístek podpory, abyste ho mohli snadno zvýšit.
    • Pokud překročíte limit celkové kvóty jader, zobrazí se chybová zpráva s oznámením The maximum node count you can select is {maxCount} due to the remaining quota in the selected subscription ({remaining} cores).
    • Pravidla vertikálního navýšení kapacity mají přednost při aktivaci jednoho nebo více pravidel. I když jen jedno z pravidel vertikálního navýšení kapacity navrhuje, aby cluster byl nedostatečně zřízený, cluster se pokusí vertikálně navýšit kapacitu. Aby bylo možné vertikálně snížit kapacitu, nemělo by se aktivovat žádné pravidlo vertikálního navýšení kapacity.
    • Ve verzi Public Preview podporuje HDInsight v AKS až 500 uzlů v clusteru.

Vytvoření clusteru pomocí šablony Resource Manageru

Automatické škálování na základě plánu

Službu HDInsight můžete vytvořit v clusteru AKS s automatickým škálováním na základě plánu pomocí šablony Azure Resource Manageru přidáním automatického škálování do oddílu clusterProfile –> autoscaleProfile.

Uzel automatického škálování obsahuje opakování s časovým pásmem a plánem, který popisuje, kdy se změna provede. Kompletní šablonu Resource Manageru najdete v ukázce JSON.

{
  "autoscaleProfile": {
    "enabled": true,
    "autoscaleType": "ScheduleBased",
    "gracefulDecommissionTimeout": 60,
    "scheduleBasedConfig": {
      "schedules": [
        {
          "days": [
            "Monday",
            "Tuesday",
            "Wednesday"
          ],
          "startTime": "09:00",
          "endTime": "10:00",
          "count": 2
        },
        {
          "days": [
            "Sunday",
            "Saturday"
          ],
          "startTime": "12:00",
          "endTime": "22:00",
          "count": 5
        },
        {
          "days": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday"
          ],
          "startTime": "22:00",
          "endTime": "23:59",
          "count": 6
        },
        {
          "days": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday"
          ],
          "startTime": "00:00",
          "endTime": "05:00",
          "count": 6
        }
      ],
      "timeZone": "UTC",
      "defaultCount": 110
    }
  }
}

Tip

  • Abyste se vyhnuli selháním operace škálování, musíte nastavit nekonfliktní plány pomocí nasazení ARM.

Automatické škálování na základě zatížení

Službu HDInsight můžete vytvořit v clusteru AKS s automatickým škálováním na základě zatížení pomocí šablony Azure Resource Manageru přidáním automatického škálování do oddílu clusterProfile –> autoscaleProfile.

Uzel automatického škálování obsahuje

  • interval dotazování, období ochladnutí,
  • řádné vyřazení z provozu,
  • minimální a maximální počet uzlů,
  • standardní prahová pravidla,
  • metriky škálování, které popisují, kdy se změna provede.

Kompletní šablonu Resource Manageru najdete v ukázkovém formátu JSON následujícím způsobem:

  {
  "autoscaleProfile": {
    "enabled": true,
    "autoscaleType": "LoadBased",
    "gracefulDecommissionTimeout": 60,
    "loadBasedConfig": {
      "minNodes": 2,
      "maxNodes": 157,
      "pollInterval": 300,
      "cooldownPeriod": 180,
      "scalingRules": [
        {
          "actionType": "scaleup",
          "comparisonRule": {
            "threshold": 80,
            "operator": " greaterThanOrEqual"
          },
          "evaluationCount": 1,
          "scalingMetric": "allocatedCoresPercentage"
        },
        {
          "actionType": "scaledown",
          "comparisonRule": {
            "threshold": 20,
            "operator": " lessThanOrEqual"
          },
          "evaluationCount": 1,
          "scalingMetric": "allocatedCoresPercentage"
        }
      ]
    }
  }
}

Použití rozhraní REST API

Pokud chcete povolit nebo zakázat automatické škálování na spuštěném clusteru pomocí rozhraní REST API, vytvořte požadavek PATCH na koncový bod automatického škálování: https://management.azure.com/subscriptions/{{USER_SUB}}/resourceGroups/{{USER_RG}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSTER_POOL_NAME}}/clusters/{{CLUSTER_NAME}}?api-version={{HILO_API_VERSION}}

  • Použijte příslušné parametry v datové části požadavku. Datová část JSON se dá použít k povolení automatického škálování.
  • K zakázání automatického škálování použijte datovou část (autoscaleProfile: null) nebo použijte příznak (povoleno, nepravda).
  • Referenční informace najdete v ukázkách JSON uvedených v předchozím kroku.

Pozastavení automatického škálování pro spuštěný cluster

Zavedli jsme funkci pozastavení v automatickém škálování. Teď můžete pomocí webu Azure Portal pozastavit automatické škálování na spuštěném clusteru. Následující diagram znázorňuje výběr pozastavení a obnovení automatického škálování.

Snímek obrazovky znázorňující, jak pozastavit automatické škálování

Jakmile budete chtít obnovit operace automatického škálování, můžete pokračovat.

Snímek obrazovky znázorňující obnovení automatického škálování

Tip

Když nakonfigurujete více plánů a pozastavíte automatické škálování, neaktivuje se další plán. Počet uzlů zůstane stejný, i když jsou uzly v vyřazeném stavu.

Kopírování konfigurací automatického škálování

Pomocí webu Azure Portal teď můžete zkopírovat stejné konfigurace automatického škálování pro stejný obrazec clusteru napříč fondem clusterů. Tuto funkci můžete použít a exportovat nebo importovat stejné konfigurace.

Snímek obrazovky znázorňující, jak exportovat nebo importovat konfigurace z automatického škálování

Monitorování aktivit automatického škálování

Stav clusteru

Stav clusteru uvedený na webu Azure Portal vám může pomoct monitorovat aktivity automatického škálování. Všechny stavové zprávy clusteru, které se můžou zobrazit, jsou vysvětlené v seznamu.

Stav clusteru Popis
Úspěšný Cluster funguje normálně. Všechny předchozí aktivity automatického škálování byly úspěšně dokončeny.
Přijato Akceptuje se operace clusteru (například vertikální navýšení kapacity), která čeká na dokončení operace.
Neúspěšný To znamená, že aktuální operace selhala z nějakého důvodu, cluster možná není funkční.
Zrušeno Aktuální operace je zrušena.

Snímek obrazovky zobrazující stav clusteru

Pokud chcete zobrazit aktuální počet uzlů v clusteru, přejděte na graf velikostí clusteru na stránce Přehled vašeho clusteru.

Snímek obrazovky znázorňující velikost clusteru

Historie operací

Historii vertikálního navýšení a snížení kapacity clusteru můžete zobrazit jako součást metrik clusteru. Můžete také zobrazit seznam všech akcí škálování za poslední den, týden nebo jiné období.

Snímek obrazovky zobrazující historii operací clusteru v protokolech aktivit

Další materiály

Ruční škálování – Azure HDInsight v AKS