Přizpůsobte konfiguraci uzlů pro fondy uzlů služby Azure Kubernetes (AKS)

Přizpůsobením konfigurace uzlu můžete upravit nastavení operačního systému (OS) nebo parametry kubeletu tak, aby odpovídaly potřebám vašich úloh. Když vytvoříte cluster AKS nebo do clusteru přidáte fond uzlů, můžete přizpůsobit podmnožinu běžně používaných nastavení operačního systému a kubeletu. Pokud chcete nakonfigurovat nastavení nad rámec této podmnožiny, použijte objekt DaemonSet k přizpůsobení požadované konfigurace, aniž byste přišli o podporu AKS pro své uzly.

Předpoklady

Jak služba přidává podporu pro nová nastavení a parametry služby kubelet, může být vyžadována registrace příznaku funkce ve verzi Preview. Pokud se vyžaduje příznak preview, odkaz na parametry konfigurace vlastního uzlu ho zavolá.

Požadavky verze Preview na nastavení kubeletu kubeReserved a hardEvictionThreshold

Důležité

Funkce AKS ve verzi Preview jsou k dispozici na bázi samoobsluhy a dobrovolného přihlášení. Ukázky jsou poskytovány "tak, jak jsou" a "dle dostupnosti" a jsou vyloučeny ze smluv o úrovni služeb a z omezené záruky. Předběžné verze AKS jsou částečně pokryty zákaznickou podporou podle možností. Proto tyto funkce nejsou určené pro produkční použití. Další informace najdete v následujících článcích podpory:

aks-preview Instalace rozšíření Azure CLI

  1. Pokud chcete nainstalovat rozšíření aks-preview, spusťte následující příkaz:

    az extension add --name aks-preview
    
  2. Spuštěním následujícího příkazu aktualizujte na nejnovější verzi rozšíření:

    az extension update --name aks-preview
    

Před použitím nastavení kubeletu CustomNodeConfigPreview a kubeReserved ve verzi preview zaregistrujte ve svém předplatném Azure příznak funkce hardEvictionThreshold.

Zaregistruj příznak funkce CustomNodeConfigPreview

  1. CustomNodeConfigPreview Pomocí příkazu zaregistrujte příznak az feature register funkce.

    az feature register --namespace "Microsoft.ContainerService" --name "CustomNodeConfigPreview"
    

    Zobrazení stavu Zaregistrované trvá několik minut.

  2. Pomocí příkazu ověřte stav az feature show registrace.

    az feature show --namespace "Microsoft.ContainerService" --name "CustomNodeConfigPreview"
    
  3. Když se zobrazí stav Registered, obnovte registraci poskytovatele prostředků Microsoft.ContainerService pomocí příkazu az provider register.

    az provider register --namespace "Microsoft.ContainerService"
    

Vytvoření uživatelsky definovaných konfiguračních souborů uzlů pro fondy uzlů AKS

Pokud chcete změnit konfiguraci operačního systému a kubeletu, vytvořte nový konfigurační soubor s požadovanými parametry a nastavením. Pokud nezadáte hodnotu parametru, použije se výchozí hodnota.

Poznámka:

Následující příklady ukazují běžná nastavení konfigurace. Upravte nastavení tak, aby splňovala vaše požadavky na úlohy. Úplný seznam podporovaných vlastních parametrů konfigurace najdete v tématu Vlastní parametry konfigurace uzlu pro AKS.

Konfigurace Kubeletu

Vytvořte linuxkubeletconfig.json soubor s následujícím obsahem:

{
 "cpuManagerPolicy": "static",
 "cpuCfsQuota": true,
 "cpuCfsQuotaPeriod": "200ms",
 "imageGcHighThreshold": 90,
 "imageGcLowThreshold": 70,
 "topologyManagerPolicy": "best-effort",
 "allowedUnsafeSysctls": [
  "kernel.msg*",
  "net.*"
],
 "failSwapOn": false
}

Pokud chcete ve fondech linuxových uzlů použít nastavení kubeletu pro verzi Preview funkce Přizpůsobení uzlu, přidejte kubeReserved a hardEvictionThreshold do konfiguračního souboru kubeletu. Následující příklad rezervuje procesor a paměť pro démony systému Kubernetes a nakonfiguruje prahové hodnoty vyřazení kubeletu:

{
  "cpuManagerPolicy": "static",
  "kubeReserved": {
    "cpuMillicores": 200,
    "memoryMB": 1024
  },
  "hardEvictionThreshold": {
    "memoryAvailable": "20%",
    "nodeFsAvailable": "10%",
    "nodeFsInodesFree": "5%"
  }
}

Používejte kubeReserved a hardEvictionThreshold pouze ve fondech uzlů Linuxu. Obě nastavení vyžadují příznak CustomNodeConfigPreview feature flag.

Konfigurace operačního systému

Vytvořte linuxosconfig.json soubor s následujícím obsahem:

{
 "transparentHugePageEnabled": "madvise",
 "transparentHugePageDefrag": "defer+madvise",
 "swapFileSizeMB": 1500,
 "sysctls": {
  "netCoreSomaxconn": 163849,
  "netIpv4TcpTwReuse": true,
  "netIpv4IpLocalPortRange": "32000 60000"
 }
}

Vytvoření clusteru AKS pomocí vlastních konfiguračních souborů

Poznámka:

Při používání vlastních konfiguračních souborů při vytváření nového clusteru AKS mějte na paměti následující informace:

  • Pokud při vytváření clusteru zadáte konfiguraci, konfigurace se vztahuje pouze na uzly v počátečním fondu uzlů. Cluster uchovává výchozí hodnoty pro všechna nastavení, která nejsou nakonfigurovaná v souboru JSON.
  • CustomLinuxOsConfig není podporován pro typ operačního systému Windows.
  • Nastavení kubeletu kubeReserved a hardEvictionThreshold ve verzi Preview jsou podporována pouze pro fondy uzlů se systémem Linux a vyžadují příznak funkce CustomNodeConfigPreview. Před vytvořením clusteru nebo fondu uzlů dokončete kroky registrace v části Požadavky verze Preview pro kubeReserved a hardEvictionThreshold nastavení kubeletu.

Spusťte příkaz az aks create a zadejte své konfigurační soubory pro parametry --linux-os-config a --kubelet-config. Tím vytvoříte nový cluster pomocí vlastních konfiguračních souborů. Následující ukázkový příkaz vytvoří nový cluster s vlastními ./linuxkubeletconfig.json soubory a ./linuxosconfig.json soubory:

az aks create --name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json --linux-os-config ./linuxosconfig.json

Přidání fondu uzlů pomocí vlastních konfiguračních souborů

Poznámka:

Při použití vlastních konfiguračních souborů pro přidání nového fondu uzlů do existujícího clusteru AKS mějte na paměti následující informace:

  • Když do existujícího clusteru přidáte fond uzlů Linuxu, můžete zadat konfiguraci kubeletu, konfiguraci operačního systému nebo obojí. Když do existujícího clusteru přidáte fond uzlů Windows, můžete zadat pouze konfiguraci kubeletu. Pokud při přidávání fondu uzlů zadáte konfiguraci, konfigurace se vztahuje pouze na uzly v novém fondu uzlů. Fond uzlů uchovává výchozí hodnoty pro všechna nastavení, která nejsou nakonfigurovaná v souboru JSON.
  • CustomKubeletConfig podporuje fondy uzlů Linuxu a Windows.
  • Nastavení kubeletu kubeReserved a hardEvictionThreshold ve verzi Preview jsou podporována pouze pro fondy uzlů se systémem Linux a vyžadují příznak funkce CustomNodeConfigPreview. Před vytvořením clusteru nebo fondu uzlů dokončete kroky registrace uvedené v Požadavcích verze Preview pro kubeReserved a hardEvictionThreshold nastavení kubeletu.

Vytvořte nový fond uzlů Linux pomocí příkazu az aks nodepool add a zadejte konfigurační soubory pro parametry --kubelet-config a --linux-os-config. Následující ukázkový příkaz vytvoří nový fond uzlů Linuxu s vlastním ./linuxkubeletconfig.json souborem:

az aks nodepool add --name <node-pool-name> --cluster-name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json

Potvrzení použití nastavení

Po použití vlastní konfigurace uzlu můžete potvrdit, že byla nastavení použita na uzly připojením k hostiteli a ověřením, zda byla provedena sysctl změna konfigurace v systému souborů.

Kontrola podporovaných vlastních parametrů konfigurace

Úplný seznam podporovaných parametrů konfigurace kubeletu a operačního systému Linux, povolených hodnot, výchozích hodnot a popisů najdete v tématu Vlastní parametry konfigurace uzlu pro AKS.

Důležité informace o vlastních konfiguracích uzlů

Při přizpůsobení konfigurace uzlu mějte na paměti následující aspekty:

  • Aktualizace bitové kopie uzlu znovu použije vlastní konfiguraci uzlu.
  • Operace horizontálního škálování zachovávají vlastní konfiguraci uzlů.
  • AKS neprovádí předběžné ověření pro každý parametr nebo každou hodnotu konfigurace vlastního uzlu. Ujistěte se, že jsou podporované a platné parametry a hodnoty konfigurace vlastního uzlu, abyste se vyhnuli potenciálním problémům s uzly clusteru.
  • Nastavení ve verzi Preview kubeReserved a hardEvictionThreshold jsou k dispozici pouze ve fondech uzlů se systémem Linux.
  • Pokud konfigurujete kubeReserved, musí být hodnoty kladné a nesmí překročit kapacitu procesoru nebo paměti dostupnou ve fondu cílových uzlů.
  • Pokud nakonfigurujete hardEvictionThreshold, použijte pouze podporované jednotky: Ki, Mi, Gi, nebo % pro memoryAvailable a nodeFsAvailable, a nezpracované číslo nebo % pro nodeFsInodesFree.
  • Výchozí hodnoty parametrů konfigurace vlastních uzlů se často mění s novými verzemi operačního systému. Při použití vlastních konfigurací uzlů zkontrolujte výchozí hodnoty parametrů, které konfigurujete, a ujistěte se, že jsou vaše vlastní nastavení vhodná pro verzi operačního systému uzlů clusteru.
  • Omezte počet lidí, kteří mají oprávnění ke změně konfigurace vlastního uzlu, aby se zabránilo nezamýšleným důsledkům na stabilitu a výkon clusteru. Zvažte použití autorizace Microsoft Entra ID pro rozhraní API Kubernetes , abyste omezili přístup k nastavení konfigurace clusteru.
  • Oddělte fondy uzlů s vlastními konfiguracemi od těch bez vlastních konfigurací, abyste zabránili nezamýšleným důsledkům úloh, které by mohly být citlivé na určité změny konfigurace. Pokud máte například kritickou úlohu, která vyžaduje konkrétní nastavení kubeletu, zvažte izolování této úlohy do vyhrazeného fondu uzlů s potřebnou vlastní konfigurací kubeletu.