Upgrade clusteru Kubernetes pomocí modulu AKS ve službě Azure Stack Hub
Modul AKS umožňuje upgradovat cluster Kubernetes, který byl původně nasazený pomocí nástroje ve službě Azure Stack Hub. Clustery můžete udržovat pomocí modulu AKS. Vaše úlohy údržby jsou podobné všem systémům IaaS. Měli byste vědět o dostupnosti nových aktualizací a k jejich použití použít modul AKS.
Upgrade clusteru
Příkaz pro upgrade aktualizuje verzi Kubernetes a image základního operačního systému. Pokaždé, když spustíte příkaz pro upgrade, modul AKS pro každý uzel clusteru vytvoří nový virtuální počítač pomocí základní image AKS přidružené k použité verzi aks-engine .
Pro modul AKS verze 0.73.0 a novější můžete pomocí aks-engine upgrade
příkazu udržovat měnu každého hlavního uzlu a agenta v clusteru.
V případě modulu AKS verze 0.75.3 a novějších můžete pomocí aks-engine-azurestack upgrade
příkazu udržovat měnu každého hlavního uzlu a uzlu agenta v clusteru.
Microsoft váš cluster nespravuje. Microsoft ale poskytuje nástroj a image virtuálního počítače, které můžete použít ke správě clusteru.
U nasazeného clusteru upgrady zahrnují:
- Kubernetes
- Poskytovatel Kubernetes ve službě Azure Stack Hub
- Základní operační systém
Při upgradu produkčního clusteru zvažte následující:
- Používáte správnou specifikaci clusteru (
apimodel.json
) a skupinu prostředků pro cílový cluster? - Používáte pro klientský počítač spolehlivý počítač pro spuštění modulu AKS, ze kterého provádíte operace upgradu?
- Ujistěte se, že máte záložní cluster a že je funkční.
- Pokud je to možné, spusťte příkaz z virtuálního počítače v prostředí služby Azure Stack Hub, abyste snížili počet síťových směrování a potenciálních selhání připojení.
- Ujistěte se, že vaše předplatné má dostatek místa pro celý proces. Proces během procesu přiděluje nové virtuální počítače.
- Neplánují se žádné aktualizace systému ani naplánované úlohy.
- Nastavte fázovaný upgrade v clusteru, který je nakonfigurovaný přesně jako produkční cluster, a otestujte upgrade tam předtím, než to uděláte v produkčním clusteru.
Postup upgradu na novější verzi Kubernetes
Poznámka
Základní image AKS se také upgraduje, pokud používáte novější verzi aks-engine a image je k dispozici na marketplace.
Následující pokyny používají minimální kroky k provedení upgradu. Další podrobnosti najdete v článku Upgrade clusterů Kubernetes.
Nejprve musíte určit verze, na které můžete pro upgrade cílit. Tato verze závisí na verzi, kterou aktuálně máte, a pak tuto hodnotu verze použije k provedení upgradu. Verze Kubernetes podporované vaším modulem AKS je možné vypsat spuštěním následujícího příkazu:
Poznámka
Pro AKSe verze 0.75.3 a vyšší je
aks-engine-azurestack get-versions
příkaz pro získání verzí modulu AKS .aks-engine get-versions --azure-env AzureStackCloud
Kompletní mapování modulu AKS, základní image AKS a verzí Kubernetes najdete v tématu Podporované verze modulu AKS.
Shromážděte informace, které budete potřebovat ke spuštění
upgrade
příkazu. Příkazupgrade
používá následující parametry:Parametr Příklad Description azure-env AzureStackCloud Pokud chcete modulu AKS označit, že vaší cílovou platformou je Azure Stack Hub, použijte AzureStackCloud
.location local Název oblasti pro službu Azure Stack Hub. U sady ASDK je oblast nastavená na local
.resource-group kube-rg Zadejte název nové skupiny prostředků nebo vyberte existující skupinu prostředků. Název prostředku musí být alfanumerický a malými písmeny. ID předplatného xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Zadejte ID předplatného. Další informace najdete v tématu Přihlášení k odběru nabídky. api-model ./kubernetes-azurestack.json Cesta ke konfiguračnímu souboru clusteru nebo modelu rozhraní API client-ID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Zadejte identifikátor GUID instančního objektu. ID klienta identifikované jako ID aplikace, když správce služby Azure Stack Hub vytvořil instanční objekt. tajný klíč klienta xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Zadejte tajný kód instančního objektu. Toto je tajný klíč klienta, který jste nastavili při vytváření služby. identity-system Adfs Nepovinný parametr. Pokud používáte službu Active Directory Federated Services (AD FS), zadejte řešení správy identit. Se svými hodnotami spusťte následující příkaz:
Poznámka
Pro AKSe verze 0.75.3 a vyšší je
aks-engine-azurestack upgrade
příkaz pro upgrade modulu AKS .aks-engine upgrade \ --azure-env AzureStackCloud \ --location <for an ASDK is local> \ --resource-group kube-rg \ --subscription-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --api-model kube-rg/apimodel.json \ --upgrade-version 1.18.15 \ --client-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --identity-system adfs # required if using AD FS
Pokud z nějakého důvodu dojde k selhání operace upgradu, můžete po vyřešení problému spustit příkaz znovu
upgrade
. Modul AKS obnoví operaci, ve které předtím selhala.
Postup upgradu pouze image operačního systému
- Projděte si tabulku supported-kubernetes-versions a zjistěte, jestli máte verzi aks-engine a základní image AKS, kterou plánujete pro upgrade. Pokud používáte modul AKS verze 0.73.0 nebo novější, zobrazíte verzi aks-engine run:
aks-engine version
. Pokud používáte modul AKS verze 0.75.3 nebo vyšší, chcete-li zobrazit verzi modulu aks-engine, spusťte:aks-engine-azurestack version
. - Odpovídajícím způsobem upgradujte modul AKS na počítači, na kterém jste nainstalovali aks-engine run:
./get-akse.sh --version vx.xx.x
nahraďte x.xx.x cílovou verzí. - Požádejte operátora služby Azure Stack Hub, aby přidal verzi základní image AKS, kterou potřebujete na marketplace služby Azure Stack Hub, kterou plánujete použít.
aks-engine upgrade
Spusťte příkaz pomocí stejné verze Kubernetes, kterou už používáte, ale přidejte--force
. Příklad najdete v tématu Vynucení upgradu.
Postup aktualizace clusteru na verzi operačního systému Ubuntu 20.04
S modulem AKS verze 0.75.3 a vyšší můžete upgradovat virtuální počítače clusteru z Ubuntu 18.04 na verzi 20.04. Postupujte takto:
- Vyhledejte a upravte
api-model.json
soubor, který se vygeneroval během nasazení. Měl by se jednat o stejný soubor, který se používá pro všechny operace upgradu nebo škálování pomocíaks-engine
nástroje . V modulu AKS verze 0.75.3 a novější použijteaks-engine-azurestack
. - Vyhledejte oddíly pro
masterProfile
a ,agentPoolProfiles
v těchto oddílech změňte hodnotudistro
naaks-ubuntu-20.04
. api-model.json
Uložte soubor a použijte hoapi-model.json
vaks-engin upgrade
příkazu stejně jako v postupu upgradu na novější verzi Kubernetes.
Postup upgradu clusteru, pokud používáte svazky úložiště s modulem AKS verze 0.70.0 nebo novější
Projekt Cloud Provider pro Azure (označovaný také jako cloud-controller-manager
mimo stromový poskytovatel cloudu nebo externí poskytovatel cloudu) implementuje rozhraní poskytovatele cloudu Kubernetes pro cloudy Azure. Implementace mimo strom nahrazuje zastaralou implementaci in-tree.
Ve službě Azure Stack Hub budou clustery založené na modulu AKS od Kubernetes verze 1.21 používat cloud-controller-manager
výhradně . Pokud tedy chcete nasadit cluster Kubernetes verze 1.21 nebo novější, musíte ho v modelu rozhraní API nastavit orchestratorProfile.kubernetesConfig.useCloudControllerManager
na true
(příklad). Proces upgradu modulu AKS automaticky aktualizuje useCloudControllerManager
příznak.
Poznámka
Důležité informace o upgradu: Proces upgradu clusteru Kubernetes z verze 1.20 (nebo nižší verze) na verzi 1.21 (nebo vyšší) způsobí výpadky úloh, které se spoléhají na kubernetes.io/azure-disk
zřizovací nástroj svazků ve struktuře. Před upgradem na Kubernetes verze 1.21 a novější důrazně doporučujeme provést úplné zálohování dat aplikace a ověřit v předprodukčním prostředí , že prostředky úložiště clusteru (PV a PVC) je možné migrovat do nového zřizovateče svazků. Tady se dozvíte, jak migrovat na ovladač CsI disku Azure.
Zřizovací služby svazků
Nástroj pro zřizování svazků ve stromové struktuře je kompatibilní pouze s poskytovatelem cloudu ve stromové struktuře. Cluster verze 1.21+ proto musí obsahovat ovladač rozhraní CSI (Container Storage Interface), pokud uživatelské úlohy spoléhají na trvalé úložiště. Tady je uvedeno několik řešení dostupných ve službě Azure Stack Hub.
Modul AKS ve výchozím nastavení ve službě Azure Stack Hub nepovolí žádný ovladač CSI. U úloh, které vyžadují ovladač CSI, je možné buď explicitně povolit azuredisk-csi-driver
doplněk (clustery jen s Linuxem), nebo použít Helm
k instalaci azuredisk-csi-driver
grafu (clustery s Linuxem nebo Windows).
Migrace trvalého úložiště na ovladač CsI disku Azure
Proces upgradu clusteru založeného na modulu AKS z verze 1.20 (nebo nižší verze) na verzi 1.21 (nebo vyšší) způsobí výpadky úloh, které se spoléhají na kubernetes.io/azure-disk
nástroj pro zřizování svazků ve stromové struktuře, protože tento zřizovací proces není součástí poskytovatele cloudových služeb pro Azure.
Pokud by se měla zachovat data uložená na podkladových discích Azure, po dokončení procesu upgradu clusteru se vyžadují následující dodatečné kroky:
- Instalace ovladače Azure Disk CSI
- Odebrání zastaralých tříd úložiště ve stromové struktuře
- Opětovné vytvoření trvalých svazků a deklarací identity
1. Ruční instalace ovladače Azure Disk CSI
Následující skript používá Helm
k instalaci ovladače Azure Disk CSI:
DRIVER_VERSION=v1.10.0
helm repo add azuredisk-csi-driver https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts
helm install azuredisk-csi-driver azuredisk-csi-driver/azuredisk-csi-driver \
--namespace kube-system \
--set cloud=AzureStackCloud \
--set controller.runOnMaster=true \
--version ${DRIVER_VERSION}
2. Nahrazení tříd úložiště
Po kube-addon-manager
ručním odstranění tříd úložiště ve stromové struktuře (kubernetes.io/azure-disk
) automaticky vytvoří třídy úložištědisk.csi.azure.com
ovladače CSI disku Azure:
IN_TREE_SC="default managed-premium managed-standard"
# Delete deprecated "kubernetes.io/azure-disk" storage classes
kubectl delete storageclasses ${IN_TREE_SC}
# Wait for addon manager to create the "disk.csi.azure.com" storage class resources
kubectl get --watch storageclasses
3. Opětovné vytvoření trvalých svazků
Po instalaci ovladače CsI disku Azure a nahrazení tříd úložiště je dalším krokem opětovné vytvoření trvalých svazků (PV) a trvalých deklarací identity svazků (PVC) pomocí ovladače Azure Disk CSI (nebo alternativního řešení CSI).
Jedná se o vícekrokový proces, který se může lišit v závislosti na tom, jak byly tyto prostředky původně nasazeny. Kroky na nejvyšší úrovni jsou:
- Odstraňte nasazení nebo stavovou sadu, která odkazuje na páry PV a PVC, které se mají migrovat (v případě potřeby definice prostředku zálohování).
- Ujistěte se, že je vlastnost osobních
persistentVolumeReclaimPolicy
počítačů nastavená na hodnotuRetain
(příklad). - Odstraňte páry PV a PVC, které se mají migrovat (v případě potřeby definice prostředků zálohujte).
- Pokud chcete provést migraci, aktualizujte definici prostředku virtuálních počítačů odebráním objektu
azureDisk
a přidáním objektucsi
s odkazem na původní AzureDisk (příklad). - V následujícím pořadí znovu vytvořte prostředek/prostředky pv, prostředky PVC (v případě potřeby) a nakonec nasazení nebo stavovou sadu.
Následující skript migrace je k dispozici jako šablona.
Pokud se po spuštění skriptu migrace zablokuje pod s chybou Nejde připojit nebo připojit svazky, ujistěte se, že je nainstalovaný ovladač CsI disku Azure a znovu se vytvořily třídy úložiště.
Vynucení upgradu
Možná budete chtít vynutit upgrade clusteru za podmínek. Například v první den nasadíte cluster v odpojené prostředí pomocí nejnovější verze Kubernetes. Následující den Ubuntu vydává opravu chyby zabezpečení, pro kterou Microsoft vygeneruje novou základní image AKS. Novou image můžete použít vynucením upgradu pomocí stejné verze Kubernetes, kterou jste už nasadili.
Poznámka
Pro AKSe verze 0.75.3 a vyšší je aks-engine-azurestack upgrade
příkaz pro upgrade modulu AKS .
aks-engine upgrade \
--azure-env AzureStackCloud
--location <for an ASDK is local> \
--resource-group kube-rg \
--subscription-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--api-model kube-rg/apimodel.json \
--upgrade-version 1.18.15 \
--client-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--force
Pokyny najdete v tématu Vynucení upgradu.
Další kroky
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro