Upgrade clusteru Kubernetes operátora Azure Nexus

Tento článek obsahuje pokyny k upgradu clusteru Operator Nexus Kubernetes za účelem získání nejnovějších funkcí a aktualizací zabezpečení. Součástí životního cyklu clusteru Kubernetes je provádění pravidelných upgradů na nejnovější verzi Kubernetes. Abyste získali nejnovější funkce, je důležité použít nejnovější verze zabezpečení nebo upgradovat. V tomto článku se dozvíte, jak zkontrolovat, nakonfigurovat a použít upgrady na cluster Kubernetes.

Omezení

  • Proces upgradu clusteru je přístup se škálováním na více instancí, což znamená, že se přidá alespoň jeden další uzel (nebo kolik uzlů je nakonfigurovaných v maximálním nárůstu kapacity). Pokud není k dispozici dostatečná kapacita, upgrade se nezdaří.
  • Jakmile budou k dispozici nové verze Kubernetes, clustery tenantů neprojdou automatickými upgrady. Uživatelé by měli zahájit upgrade, když jsou všechny síťové funkce v clusteru připravené pro podporu nové verze Kubernetes. Další informace najdete v tématu Upgrade clusteru.
  • Operátor Nexus nabízí upgrady pro celý cluster a zajišťuje konzistenci napříč všemi fondy uzlů. Upgrade fondu s jedním uzlem se nepodporuje. Image uzlu se také upgraduje jako součást upgradu clusteru, když je k dispozici nová verze.
  • Během upgradů clusteru dojde ke ztrátě přizpůsobení uzlů agentů. Doporučuje se umístit tato přizpůsobení DaemonSet místo ručních změn konfigurace uzlu, aby se po upgradu zachovaly.
  • Změny základních konfigurací doplňků se obnoví do výchozí konfigurace doplňku v rámci procesu upgradu clusteru. Vyhněte se přizpůsobení konfigurace doplňků (například Calico atd.), aby se zabránilo potenciálním selháním upgradu. Pokud dojde k problémům s obnovením konfigurace doplňku, může dojít k selhání upgradu.
  • Při upgradu clusteru Operator Nexus Kubernetes není možné přeskočit podverze Kubernetes. Všechny upgrady musíte provést postupně podle čísla hlavní verze. Například upgrady mezi verzemi 1.14.x ->1.15.x nebo 1.15.x ->1.16.x jsou povolené, ale verze 1.14.x ->1.16.x není povolená. Pokud je vaše verze za více než jednou hlavní verzí, měli byste provést více sekvenčních upgradů.
  • Při vytváření clusteru musí být nastaveny maximální hodnoty přepětí. Po vytvoření clusteru nemůžete změnit maximální hodnoty přepětí. Další informace najdete v tématu upgradeSettingsVytvoření clusteru Kubernetes operátora Azure Nexus.

Předpoklady

  • Cluster Kubernetes operátora Azure, který je nasazený ve skupině prostředků ve vašem předplatném Azure.
  • Pokud používáte Azure CLI, musíte mít nejnovější verzi Azure CLI. Pokud potřebujete nainstalovat nebo upgradovat, přečtěte si téma Instalace Azure CLI.
  • Seznamte se s konceptem sad verzí. Další informace najdete v části Sady verzí Nexus Kubernetes.

Kontrola dostupných upgradů

Pomocí následujících kroků zkontrolujte, které verze Kubernetes jsou pro váš cluster k dispozici:

Použití Azure CLI

Následující příkaz Azure CLI vrátí dostupné upgrady pro váš cluster:

az networkcloud kubernetescluster show --name <NexusK8sClusterName> --resource-group <ResourceGroup> --output json --query availableUpgrades

Ukázkový výstup:

[
  {
    "availabilityLifecycle": "GenerallyAvailable",
    "version": "v1.25.4-4"
  },
  {
    "availabilityLifecycle": "GenerallyAvailable",
    "version": "v1.25.6-1"
  },
  {
    "availabilityLifecycle": "GenerallyAvailable",
    "version": "v1.26.3-1"
  }
]

Použití portálu Azure Portal

  1. Přihlaste se k portálu Azure.
  2. Přejděte do clusteru Kubernetes operátora Nexus.
  3. V části Přehled vyberte kartu Dostupné upgrady .

Screenshot of available upgrades.

Zvolte verzi, na které chcete upgradovat.

Dostupný výstup upgradu označuje, že pro upgrade existuje více verzí, ze které si můžete vybrat. V tomto konkrétním scénáři pracuje aktuální cluster na verzi v1.25.4-3. . V důsledku toho jsou k dispozici dostupné možnosti v1.25.4-4 upgradu a nejnovější verze v1.25.6-1. opravy. K dispozici je také nová podverze.

Máte možnost upgradovat na některou z dostupných verzí. Doporučeným průběhem akce je však provedení upgradu na nejnovější dostupnou major-minor-patch-versionbundle verzi.

Poznámka:

Vstupní formát verze je major.minor.patch nebo major.minor.patch-versionbundle. Vstup verze musí být jednou z dostupných verzí upgradu. Pokud je 1.1.1-1například aktuální verze clusteru , platné vstupy verzí jsou 1.1.1-2 nebo 1.1.1-x. I když 1.1.1 je platný formát, neaktivuje žádnou aktualizaci, protože aktuální verze je již 1.1.1. Chcete-li zahájit aktualizaci, můžete zadat úplnou verzi sady verzí, například 1.1.1-2. 1.1.2 Jedná 1.2.x se však o platný vstup a použije nejnovější sadu verzí dostupnou pro 1.1.2 nebo 1.2.x.

Upgrade clusteru

Během procesu upgradu clusteru provede operátor Nexus následující operace:

  • Přidejte do clusteru nový uzel řídicí roviny se zadanou verzí Kubernetes.
  • Po přidání nového uzlu se kabelon a vyprázdnění jednoho ze starých uzlů řídicí roviny zajistí, aby se úlohy spuštěné na něm řádně přesunuly do jiných uzlů řídicí roviny, které jsou v pořádku.
  • Po vyprázdnění starého uzlu řídicí roviny se odebere a do clusteru se přidá nový uzel řídicí roviny.
  • Tento proces se opakuje, dokud se neupgradují všechny uzly řídicí roviny v clusteru.
  • Pro každý fond agentů v clusteru přidejte nový pracovní uzel (nebo libovolný počet uzlů nakonfigurovaných v maximálním nárůstu) se zadanou verzí Kubernetes. Současně se upgraduje více fondů agentů.
  • Cordon a vyprázdněte jeden ze starých pracovních uzlů, abyste minimalizovali přerušení spuštěných aplikací. Pokud používáte maximální nárůst výkonu, kabelony a vyprázdní tolik pracovních uzlů najednou jako počet zadaných uzlů vyrovnávací paměti.
  • Po vyprázdnění starého pracovního uzlu se odebere a do clusteru se přidá nový pracovní uzel s novou verzí Kubernetes (nebo tolik uzlů, kolik je nakonfigurovaných v maximálním nárůstu výkonu).
  • Tento proces se opakuje, dokud nebudou upgradovány všechny pracovní uzly v clusteru.

Důležité

Ujistěte se, že všechny PodDisruptionBudgets (PDB) umožňují přesunutí alespoň jedné repliky podu najednou, jinak operace vyprázdnění nebo vyřazení selže. Pokud operace vyprázdnění selže, operace upgradu selže také, aby se zajistilo, že aplikace nebudou přerušeny. Opravte, co způsobilo zastavení operace (tj. nesprávné soubory PDB, nedostatek kvóty atd.) a zkuste operaci znovu.

  1. Upgradujte cluster pomocí networkcloud kubernetescluster update příkazu.
az networkcloud kubernetescluster update --name myNexusK8sCluster --resource-group myResourceGroup --kubernetes-version v1.26.3
  1. Pomocí příkazu ověřte, že upgrade proběhl úspěšně show .
az networkcloud kubernetescluster show --name myNexusK8sCluster --resource-group myResourceGroup --output json --query kubernetesVersion

Následující příklad výstupu ukazuje, že cluster teď běží v1.26.3:

"v1.26.3"
  1. Ujistěte se, že je cluster v pořádku.
az networkcloud kubernetescluster show --name myNexusK8sCluster --resource-group myResourceGroup --output table

Následující příklad výstupu ukazuje, že cluster je v pořádku:

Name                 ResourceGroup          ProvisioningState    DetailedStatus    DetailedStatusMessage             Location
------------------   ---------------------  -------------------  ----------------  --------------------------------  --------------
myNexusK8sCluster    myResourceGroup        Succeeded            Available         Cluster is operational and ready  southcentralus

Přizpůsobení upgradu přepětí uzlů

Operátor Nexus ve výchozím nastavení konfiguruje upgrady tak, aby se přecházely s jedním dalším pracovním uzlem. Výchozí hodnota jednoho pro maximální nastavení přepětí umožňuje operátoru Nexus minimalizovat přerušení úloh vytvořením dalšího uzlu před kabelonem nebo vyprázdněním existujících aplikací, aby nahradil starší verzi uzlu. Maximální hodnotu přepětí je možné přizpůsobit na fond uzlů, aby se umožnil kompromis mezi rychlostí upgradu a přerušením upgradu. Když zvýšíte maximální hodnotu nárůstu, proces upgradu se dokončí rychleji. Pokud nastavíte velkou hodnotu maximálního nárůstu výkonu, může dojít k přerušení během procesu upgradu.

Například maximální hodnota nárůstu 100 % poskytuje nejrychlejší možný proces upgradu (zdvojnásobení počtu uzlů), ale zároveň způsobí, že se všechny uzly ve fondu uzlů vyprázdní současně. Pro testovací prostředí můžete chtít použít vyšší hodnotu, například tuto hodnotu. Pro fondy produkčních uzlů doporučujeme max_surge nastavení 33 %.

Rozhraní API přijímá celočíselné hodnoty i procentuální hodnotu maximálního nárůstu. Celé číslo, například 5, označuje pět dalších uzlů, které se mají přepět. Hodnota 50 % označuje nárůst hodnoty poloviny aktuálního počtu uzlů ve fondu. Maximální procentuální nárůst hodnot může být minimálně 1 % a maximálně 100 %. Procentuální hodnota se zaokrouhlí nahoru na nejbližší počet uzlů. Pokud je maximální hodnota nárůstu vyšší než požadovaný počet uzlů, které se mají upgradovat, použije se počet uzlů, které se mají upgradovat, pro maximální hodnotu nárůstu.

Během upgradu může být maximální hodnota nárůstu minimálně 1 a maximální hodnota rovna počtu uzlů ve fondu uzlů. Můžete nastavit větší hodnoty, ale maximální počet uzlů, které se používají k maximálnímu nárůstu, není vyšší než počet uzlů ve fondu v době upgradu.

Důležité

Standardní úlohy Kubernetes se nativně cyklicky cyklicky převádějí na nové uzly, když se vyprázdní z uzlů, které se odtrhávají. Mějte prosím na paměti, že služba Operator Nexus Kubernetes nemůže zajistit přísliby úloh pro nestandardní chování Kubernetes.

Další kroky

  • Přečtěte si další informace o balíčcích verzí Nexus Kubernetes.