Dela via


Uppgradera ett Azure Operator Nexus Kubernetes-kluster

Den här artikeln innehåller instruktioner om hur du uppgraderar ett Operator Nexus Kubernetes-kluster för att hämta de senaste funktionerna och säkerhetsuppdateringarna. En del av Kubernetes-klusterlivscykeln omfattar periodiska uppgraderingar till den senaste Kubernetes-versionen. Det är viktigt att du tillämpar de senaste säkerhetsversionerna eller uppgraderar för att hämta de senaste funktionerna. Den här artikeln visar hur du söker efter, konfigurerar och tillämpar uppgraderingar på ditt Kubernetes-kluster.

Begränsningar

  • Klusteruppgraderingsprocessen är en utskalningsmetod, vilket innebär att minst en extra nod läggs till (eller så många noder som konfigurerats i maximal ökning). Om det inte finns tillräckligt med tillgänglig kapacitet lyckas inte uppgraderingen.
  • När nya Kubernetes-versioner blir tillgängliga genomgår klientkluster inte automatiska uppgraderingar. Användarna bör initiera uppgraderingen när alla nätverksfunktioner i klustret är redo att stödja den nya Kubernetes-versionen. Mer information finns i Uppgradera klustret.
  • Operator Nexus erbjuder klusteromfattande uppgraderingar, vilket säkerställer konsekvens i alla nodpooler. Uppgradering av en enskild nodpool stöds inte. Nodavbildningen uppgraderas också som en del av klusteruppgradering när en ny version är tillgänglig.
  • Anpassningar som görs till agentnoder går förlorade under klusteruppgraderingar. Vi rekommenderar att du placerar anpassningarna i DaemonSet stället för att göra manuella ändringar i nodkonfigurationen för att bevara dem efter uppgraderingen.
  • Ändringar som görs i grundläggande tilläggskonfigurationer återställs till standardkonfigurationen för tillägg som en del av klusteruppgraderingsprocessen. Undvik att anpassa tilläggskonfigurationen (till exempel Calico osv.) för att förhindra potentiella uppgraderingsfel. Om återställningen av tilläggskonfigurationen stöter på problem kan det leda till uppgraderingsfel.
  • När du uppgraderar Operator Nexus Kubernetes-klustret kan kubernetes-delversioner inte hoppas över. Du måste utföra alla uppgraderingar sekventiellt efter huvudversionsnummer. Till exempel tillåts uppgraderingar mellan 1.14.x ->1.15.x eller 1.15.x ->1.16.x, men 1.14.x ->1.16.x tillåts inte. Om din version ligger efter med mer än en huvudversion bör du utföra flera sekventiella uppgraderingar.
  • Maximala överspänningsvärden måste anges när klustret skapas. Du kan inte ändra maxvärdena för överspänning när klustret har skapats. Mer information upgradeSettings finns i Skapa ett Azure Operator Nexus Kubernetes-kluster.

Förutsättningar

  • Ett Azure Operator Nexus Kubernetes-kluster som distribuerats i en resursgrupp i din Azure-prenumeration.
  • Om du använder Azure CLI kräver den här artikeln att du kör den senaste Azure CLI-versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI
  • Förstå konceptet med versionspaket. Mer information finns i Nexus Kubernetes-versionspaket.

Sök efter tillgängliga uppgraderingar

Kontrollera vilka Kubernetes-versioner som är tillgängliga för klustret med hjälp av följande steg:

Använda Azure CLI

Följande Azure CLI-kommando returnerar de tillgängliga uppgraderingarna för klustret:

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

Exempel på utdata:

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

Använda Azure Portal

  1. Logga in på Azure-portalen.
  2. Gå till ditt Operator Nexus Kubernetes-kluster.
  3. Under Översikt väljer du fliken Tillgängliga uppgraderingar .

Screenshot of available upgrades.

Välj en version att uppgradera till

De tillgängliga uppgraderingsutdata anger att det finns flera versioner att välja mellan för uppgradering. I det här specifika scenariot körs det aktuella klustret på version v1.25.4-3. Som ett resultat av detta är de tillgängliga uppgraderingsalternativen inklusive v1.25.4-4 och den senaste korrigeringsversionen v1.25.6-1. Dessutom är en ny delversion också tillgänglig.

Du har flexibiliteten att uppgradera till någon av de tillgängliga versionerna. Den rekommenderade åtgärden är dock att utföra uppgraderingen till den senaste tillgängliga major-minor-patch-versionbundle versionen.

Kommentar

Indataformatet för versionen är major.minor.patch eller major.minor.patch-versionbundle. Versionsindata måste vara en av de tillgängliga uppgraderingsversionerna. Om den aktuella versionen av klustret till exempel är 1.1.1-1är giltiga versionsindata 1.1.1-2 eller 1.1.1-x. Även om 1.1.1 det är ett giltigt format utlöser det ingen uppdatering eftersom den aktuella versionen redan 1.1.1är . Om du vill initiera en uppdatering kan du ange den fullständiga versionen med versionspaketet, till exempel 1.1.1-2. 1.1.2 Men och 1.2.x är ett giltigt indata och använder det senaste versionspaketet som är tillgängligt för 1.1.2 eller 1.2.x.

Uppgradera klustret

Under klusteruppgraderingsprocessen utför Operator Nexus följande åtgärder:

  • Lägg till en ny kontrollplansnod med den angivna Kubernetes-versionen i klustret.
  • När den nya noden har lagts till spärrar och tömmer du en av de gamla kontrollplansnoderna, vilket säkerställer att arbetsbelastningarna som körs på den flyttas korrekt till andra felfria kontrollplansnoder.
  • När den gamla kontrollplansnoden har tömts tas den bort och en ny kontrollplansnod läggs till i klustret.
  • Den här processen upprepas tills alla kontrollplansnoder i klustret har uppgraderats.
  • För varje agentpool i klustret lägger du till en ny arbetsnod (eller så många noder som konfigurerats i maximal ökning) med den angivna Kubernetes-versionen. Flera agentpooler uppgraderas samtidigt.
  • Spärra av och töm en av de gamla arbetsnoderna för att minimera avbrott i program som körs. Om du använder maximal ökning spärrar och tömmer den så många arbetsnoder samtidigt som antalet buffertnoder som angetts.
  • När den gamla arbetsnoden har tömts tas den bort och en ny arbetsnod med den nya Kubernetes-versionen läggs till i klustret (eller så många noder som konfigurerats i maximal ökning)
  • Den här processen upprepas tills alla arbetsnoder i klustret har uppgraderats.

Viktigt!

Se till att alla PodDisruptionBudgets (PDB) tillåter att minst en poddreplik flyttas åt gången, annars misslyckas avlopps-/vräkningsåtgärden. Om dräneringsåtgärden misslyckas misslyckas även uppgraderingsåtgärden för att säkerställa att programmen inte störs. Korrigera vad som orsakade att åtgärden stoppas (dvs. felaktiga PDF-filer, brist på kvot osv.) och försök igen.

  1. Uppgradera klustret med hjälp av networkcloud kubernetescluster update kommandot .
az networkcloud kubernetescluster update --name myNexusK8sCluster --resource-group myResourceGroup --kubernetes-version v1.26.3
  1. Bekräfta att uppgraderingen lyckades med kommandot show .
az networkcloud kubernetescluster show --name myNexusK8sCluster --resource-group myResourceGroup --output json --query kubernetesVersion

Följande exempelutdata visar att klustret nu kör v1.26.3:

"v1.26.3"
  1. Kontrollera att klustret är felfritt.
az networkcloud kubernetescluster show --name myNexusK8sCluster --resource-group myResourceGroup --output table

Följande exempelutdata visar att klustret är felfritt:

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

Anpassa uppgradering av nodtoppar

Som standard konfigurerar Operator Nexus uppgraderingar till överspänning med en extra arbetsnod. Ett standardvärde på ett för inställningarna för maximal överbelastning gör att Operator Nexus kan minimera arbetsbelastningsavbrott genom att skapa en extra nod före avspärrning/tömning av befintliga program för att ersätta en äldre version av noden. Det maximala överspänningsvärdet kan anpassas per nodpool för att möjliggöra en kompromiss mellan uppgraderingshastighet och uppgraderingsstörningar. När du ökar det maximala överspänningsvärdet slutförs uppgraderingsprocessen snabbare. Om du anger ett stort värde för maximal ökning kan det uppstå störningar under uppgraderingsprocessen.

Ett maximalt överspänningsvärde på 100 % ger till exempel den snabbaste möjliga uppgraderingsprocessen (fördubbling av antalet noder) men gör också att alla noder i nodpoolen töms samtidigt. Du kanske vill använda ett högre värde som det här för att testa miljöer. För produktionsnodpooler rekommenderar vi en max_surge inställning på 33 %.

API:et accepterar både heltalsvärden och ett procentvärde för maximal ökning. Ett heltal som 5 anger att fem extra noder ska öka. Ett värde på 50 % anger ett överspänningsvärde på hälften av det aktuella nodantalet i poolen. Högsta ökningsprocentvärden kan vara minst 1 % och högst 100 %. Ett procentvärde avrundas upp till närmaste nodantal. Om det maximala överspänningsvärdet är högre än det antal noder som krävs för att uppgraderas används antalet noder som ska uppgraderas för det maximala överspänningsvärdet.

Under en uppgradering kan det maximala överspänningsvärdet vara minst 1 och ett maximalt värde som är lika med antalet noder i nodpoolen. Du kan ange större värden, men det maximala antalet noder som används för maximal ökning är inte högre än antalet noder i poolen vid tidpunkten för uppgraderingen.

Viktigt!

Kubernetes-standardarbetsbelastningarna cyklar internt till de nya noderna när de töms från noderna som rivs. Tänk på att operatören Nexus Kubernetes-tjänsten inte kan ge arbetsbelastningslöften för kubernetes-beteenden som inte är standard.

Nästa steg