Pokyny k opravám a upgradům

V této části služby Azure Kubernetes Service (AKS) se dozvíte o postupech při opravách a upgradu pro AKS pracovní uzly a verze Kubernetes (K8S).

Upgrady imagí uzlu

Microsoft poskytuje opravy a nové obrázky pro uzly imagí týdně, ale ve výchozím nastavení je automaticky neopraví. Vzhledem k tomu, že AKS není platforma jako služba (PaaS), komponenty jako uzly agentů mají sdílenou zodpovědnost a uživatelé musí pomáhat s údržbou clusteru AKS. Například použití opravy zabezpečení operačního systému uzlu agenta vyžaduje vstup uživatele.

AKS podporuje upgrade imagí uzlů pomocí nástroje AZ AKS nodepool upgrade, takže se můžete zachovávat s nejnovějšími AKTUALIZACEMI operačního systému a modulu runtime. Aby bylo možné zachovat operační systémy uzlu agenta a součásti modulu runtime, zvažte možnost kontrolovat a aplikovat upgrady imagí uzlů dvakrát týdně nebo automatizovat proces upgradu imagí uzlu. Další informace o automatizaci upgradů imagí uzlů najdete v tématu Akce GitHubu pro upgrade uzlu.

Aktualizovaná bitová kopie uzlu obsahuje aktuální opravy zabezpečení operačního systému, aktualizace jádra, aktualizace zabezpečení Kubernetes, novější verze binárních souborů, jako kubelet jsou aktualizace a verze součástí, které jsou uvedeny v poznámkách k verzi. Aktualizace imagí uzlů mají všechny relevantní a ověřené aktualizace zabezpečení a aktualizace funkcí. Pomocí metody upgradu uzlu můžete získat pouze testované jádro a součásti, které jsou kompatibilní s těmito jádry.

Upgrady imagí uzlů můžete použít k zjednodušení upgradů pro fondy uzlů Windows i Linux, ale procesy se mírně liší. Linux může obdržet každodenní aktualizace zabezpečení, ale aktualizace uzlů Windows serveru provede upgradem AKS, který nasadí nové uzly s nejnovější imagí a opravami základního serveru.

Pomocí kubectl popsat uzly pro kontrolu verze jádra operačního systému a verze image operačního systému v uzlech ve vašem clusteru:

kubectl describe nodes <NodeName>

Příklad výstupu:

System Info:
  Machine ID:                 12345678-1234-1234-1234-0123456789ab
  System UUID:                abcdefga-abcd-abcd-abcd-abcdefg01234
  Boot ID:                    abcd0123-ab01-01ab-ab01-abcd01234567
  Kernel Version:             4.15.0-1096-azure
  OS Image:                   Ubuntu 16.04.7 LTS
  Operating System:           linux
  Architecture:               amd64
  Container Runtime Version:  docker://19.3.12
  Kubelet Version:            v1.17.9
  Kube-Proxy Version:         v1.17.9

Pomocí příkazu Azure CLI AZ AKS nodepool list zkontrolujete aktuální verze imagí v uzlech v clusteru:

az aks nodepool list \
   --resource-group <ResourceGroupName> --cluster-name <AKSClusterName> \
   --query "[].{Name:name,NodeImageVersion:nodeImageVersion}" --output table

Příklad výstupu:

Name          NodeImageVersion
------------  -------------------------
systempool    AKSUbuntu-1604-2020.09.30
usernodepool  AKSUbuntu-1604-2020.09.30
usernp179     AKSUbuntu-1604-2020.10.28

K získání nejnovější dostupné verze image uzlu použijte AZ AKS nodepool Get-Upgrades :

az aks nodepool get-upgrades \
   --resource-group <ResourceGroupName> --cluster-name <AKSClusterName> \
   --nodepool-name <NodePoolName> --output table

Příklad výstupu:

KubernetesVersion  LatestNodeImageVersion     Name     OsType
-----------------  -------------------------  -------  ------
1.16.13            AKSUbuntu-1604-2020.11.11  default  Linux

Postup upgradu fondů uzlů na nejnovější verzi image uzlu:

Upgrady clusteru

Komunita Kubernetes uvolňuje drobné K8S verze zhruba každé tři měsíce. Stránka Poznámky k vydání verze AKS publikuje informace o nových verzích a vydáních AKS, nejnovějších funkcích AKS, změnách chování, opravách chyb a aktualizacích součástí. Můžete se také přihlásit k odběru informačního kanálu RSS AKS GitHubu.

Okno podporovaných verzí K8S v AKS se nazývá "N-2": (N (nejnovější verze)-2 (dílčí verze)). Je důležité vytvořit průběžný proces upgradu clusteru, aby se zajistilo, že se AKS clustery dostanou podporovat. Jakmile bude k dispozici nová verze, v ideálním případě byste měli naplánovat upgrade ve všech prostředích, aby se verze stala výchozím nastavením. Tento přístup poskytuje lepší kontrolu a předvídatelnost a umožňuje naplánovat upgrady s minimálním přerušením na stávající úlohy.

Minimalizace přerušení na stávající úlohy během upgradu:

Pokud chcete zjistit, jestli váš cluster vyžaduje upgrade, použijte příkaz AZ AKS Get-Upgrades , abyste získali seznam dostupných verzí upgradu pro vaši plochu ovládacího prvku AKS. Určete cílovou verzi pro vaši plochu ovládacího prvku z výsledků.

az aks get-upgrades \
   --resource-group <ResourceGroupName> --name <AKSClusterName> --output table

Příklad výstupu:

MasterVersion  Upgrades
-------------  ---------------------------------
1.17.9         1.17.11, 1.17.13, 1.18.8, 1.18.10

Zkontrolujte verze Kubernetes uzlů ve fondech uzlů a určete tak fondy uzlů, které je třeba upgradovat.

az aks nodepool list \  
   --resource-group <ResourceGroupName> --cluster-name <AKSClusterName> \
   --query "[].{Name:name,k8version:orchestratorVersion}" --output table

Příklad výstupu:

Name          K8version
------------  ------------
systempool    1.16.13
usernodepool  1.16.13
usernp179     1.17.9

Nejprve můžete upgradovat rovinu ovládacího prvku a potom upgradovat jednotlivé fondy uzlů.

  1. Spusťte příkaz AZ AKS upgrade s --control-plane-only příznakem pro upgrade jenom na řídicí plochu clusteru, a ne na žádný z přidružených fondů uzlů:

    az aks upgrade \
       --resource-group <ResourceGroupName> --name <AKSClusterName> \
       --control-plane-only --no-wait \
       --kubernetes-version <KubernetesVersion>
    
  2. Spuštěním AZ AKS nodepool upgrade pro upgrade fondů uzlů na cílovou verzi:

    az aks nodepool upgrade \
       --resource-group <ResourceGroupName> --cluster-name <AKSClusterName> --name <NodePoolName> \
       --no-wait --kubernetes-version <KubernetesVersion>
    

Informace o pravidlech ověřování pro upgrady clusteru najdete v tématu pravidla ověřování pro upgrady.

Požadavky

Následující tabulka obsahuje popis vlastností různých scénářů upgradu AKS a oprav:

Scenario Iniciované uživatelem Upgrade K8S Upgrade jádra operačního systému Upgrade bitové kopie uzlu
Opravy zabezpečení Ne Ne Ano, po restartování Ne
Vytvoření clusteru Ano Možná Ano, pokud aktualizovaný obrázek uzlu používá aktualizované jádro. Ano, vzhledem k existujícímu clusteru, pokud je k dispozici nová verze.
Upgrade K8S roviny ovládacího prvku Ano Ano Ne Ne
Upgrade K8S fondu uzlů Ano Ano Ano, pokud aktualizovaný obrázek uzlu používá aktualizované jádro. Ano, pokud je k dispozici nová verze.
Horizontální navýšení kapacity fondu uzlů Ano Ne Ne Ne
Upgrade bitové kopie uzlu Ano Ne Ano, pokud aktualizovaný obrázek uzlu používá aktualizované jádro. Ano
Automatický upgrade clusteru Ne Ano Ne Ne
  • Další informace o automatických aktualizacích zabezpečení pro Linux najdete v tématu AutomaticSecurityUpdates.
  • Je možné, že oprava zabezpečení operačního systému, která se použije jako součást upgradu bitové kopie uzlu, nainstaluje novější verzi jádra než vytvoření nového clusteru.
  • K určení nejnovější verze image uzlu můžete použít fondy agentů – získat upgrade profil API.
  • Horizontální navýšení kapacity fondu uzlů používá model přidružený k sadě škálování virtuálního počítače při vytváření. Aktualizace jádra operačního systému při použití oprav zabezpečení a restartování uzlů.
  • Automatický upgrade clusteru je ve verzi Preview. Další informace najdete v tématu Nastavení kanálu automatického upgradu.
  • Automatický upgrade obrázku uzlu je ve vývoji. Další informace najdete v tématu upgrade automatického obrázku uzlů pro verze uzlů.

Viz také