Uppgradera ett Kubernetes-kluster på Azure Stack HubUpgrade a Kubernetes cluster on Azure Stack Hub

Med AKS-motorn kan du uppgradera det kluster som ursprungligen distribuerades med verktyget.The AKS engine allows you to upgrade the cluster that was originally deployed using the tool. Du kan underhålla klustren med hjälp av AKS-motorn.You can maintain the clusters using the AKS engine. Dina underhålls aktiviteter liknar alla IaaS system.Your maintenance tasks are similar to any IaaS system. Du bör vara medveten om tillgängligheten för nya uppdateringar och använda AKS-motorn för att tillämpa dem.You should be aware of the availability of new updates and use the AKS engine to apply them.

Uppgradera ett klusterUpgrade a cluster

Uppgraderings kommandot uppdaterar Kubernetes-versionen och bas operativ system avbildningen.The upgrade command updates the Kubernetes version and the base OS image. Varje gång du kör uppgraderings kommandot skapar AKS-motorn en ny virtuell dator med hjälp av AKS-bas avbildningen som är kopplad till den version av AKS-motorn som används.Every time that you run the upgrade command, for every node of the cluster, the AKS engine creates a new VM using the AKS Base Image associated to the version of aks-engine used. Du kan använda aks-engine upgrade kommandot för att bibehålla valutan för alla huvud-och agent-noder i klustret.You can use the aks-engine upgrade command to maintain the currency of every master and agent node in your cluster.

Microsoft hanterar inte ditt kluster.Microsoft doesn't manage your cluster. Men Microsoft tillhandahåller verktyget och avbildningen av den virtuella datorn som du kan använda för att hantera klustret.But Microsoft provides the tool and VM image you can use to manage your cluster.

För ett distribuerat kluster uppgraderas:For a deployed cluster upgrades cover:

  • KubernetesKubernetes
  • Azure Stack Hub Kubernetes-ProviderAzure Stack Hub Kubernetes provider
  • Base OSBase OS

När du uppgraderar ett produktions kluster bör du tänka på följande:When upgrading a production cluster, consider:

  • Använder du rätt kluster specifikation ( apimodel.json ) och resurs grupp för mål klustret?Are you using the correct cluster specification (apimodel.json) and resource group for the target cluster?
  • Använder du en tillförlitlig dator för klient datorn för att köra AKS-motorn och från vilken du utför uppgraderings åtgärder?Are you using a reliable machine for the client machine to run the AKS engine and from which you are performing upgrade operations?
  • Kontrol lera att du har ett säkerhets kopierings kluster och att det fungerar.Make sure that you have a backup cluster and that it is operational.
  • Om möjligt kan du köra kommandot från en virtuell dator i Azure Stack Hub-miljön för att minska nätverks hoppen och eventuella anslutnings problem.If possible, run the command from a VM within the Azure Stack Hub environment to decrease the network hops and potential connectivity failures.
  • Se till att din prenumeration har tillräckligt med utrymme för hela processen.Make sure that your subscription has enough space for the entire process. Processen allokerar nya virtuella datorer under processen.The process allocates new VMs during the process.
  • Inga system uppdateringar eller schemalagda aktiviteter planeras.No system updates or scheduled tasks are planned.
  • Konfigurera en stegvis uppgradering i ett kluster som har kon figurer ATS exakt som produktions kluster och testa uppgraderingen där innan du gör det i ditt produktions klusterSet up a staged upgrade on a cluster that is configured exactly as the production cluster and test the upgrade there before doing so in your production cluster

Steg för att uppgradera till en nyare Kubernetes-versionSteps to upgrade to a newer Kubernetes version

Anteckning

Bas avbildningen för AKS kommer också att uppgraderas om du använder en nyare version av AKS-motorn och avbildningen är tillgänglig i Marketplace.The AKS base image will also be upgrade if you are using a newer version of the aks-engine and the image is available in the marketplace.

Följande instruktioner använder de minsta stegen för att utföra uppgraderingen.The following instructions use the minimum steps to perform the upgrade. Om du vill ha mer information kan du läsa artikeln Uppgradera Kubernetes-kluster.If would like more detail, see the article Upgrading Kubernetes Clusters.

  1. Du måste först bestämma vilka versioner du kan använda för uppgraderingen.You need to first determine the versions you can target for the upgrade. Den här versionen är beroende av den version som du för närvarande har och använder sedan version svärdet för att utföra uppgraderingen.This version depends on the version you currently have and then use that version value to perform the upgrade. De Kubernetes-versioner som stöds av AKS-motorn kan listas genom att köra följande kommando:The Kubernetes versions supported by your AKS Engine can be listed by running the following command:

    aks-engine get-versions --azure-env AzureStackCloud
    

    För en fullständig mappning av AKS-motorn, se AKS Base image-och Kubernetes-versioner som stöds AKS-motor versioner.For a complete mapping of AKS engine, AKS Base Image and Kubernetes versions see Supported AKS Engine Versions.

  2. Samla in den information du behöver för att köra upgrade kommandot.Collect the information you will need to run the upgrade command. I uppgraderingen används följande parametrar:The upgrade uses the following parameters:

    ParameterParameter ExempelExample DescriptionDescription
    Azure-kuvertazure-env AzureStackCloudAzureStackCloud För att ange till AKS-motor att mål plattformen är Azure Stack hubb används AzureStackCloud .To indicate to AKS engine that your target platform is Azure Stack Hub use AzureStackCloud.
    locationlocation lokaltlocal Region namnet för Azure Stack hubben.The region name for your Azure Stack Hub. För ASDK är regionen inställt på local .For the ASDK, the region is set to local.
    resource-groupresource-group Kube – rgkube-rg Ange namnet på en ny resurs grupp eller Välj en befintlig resurs grupp.Enter the name of a new resource group or select an existing resource group. Resurs namnet måste vara alfanumeriskt och gemener.The resource name needs to be alphanumeric and lowercase.
    prenumerations-IDsubscription-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Ange ditt prenumerations-ID.Enter your Subscription ID. Mer information finns i Prenumerera på ett erbjudandeFor more information, see Subscribe to an offer
    API-modellapi-model ./kubernetes-azurestack.jspå./kubernetes-azurestack.json Sökväg till kluster konfigurations filen eller API-modellen.Path to the cluster configuration file, or API model.
    klient-IDclient-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Ange tjänstens huvud namns-GUID.Enter the service principal GUID. Det klient-ID som identifieras som program-ID när Azure Stack Hub-administratören skapade tjänstens huvud namn.The Client ID identified as the Application ID when your Azure Stack Hub administrator created the service principal.
    klient hemlighetclient-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Ange hemligheten för tjänstens huvud namn.Enter the service principal secret. Detta är den klient hemlighet som du ställer in när du skapar tjänsten.This is the client secret you set up when creating your service.
    identitets systemidentity-system ADFSadfs Valfritt.Optional. Ange din lösning för identitets hantering om du använder Active Directory federerade tjänster (AD FS).Specify your identity management solution if you are using Active Directory Federated Services (AD FS).
  3. Med dina värden på plats kör du följande kommando:With your values in place, run the following command:

    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
    
  4. Om det av någon anledning skulle uppstå ett fel i uppgraderings åtgärden kan du köra uppgraderings kommandot igen efter att ha åtgärdat problemet.If for any reason the upgrade operation encounters a failure, you can rerun the upgrade command after addressing the issue. AKS-motorn kommer att återuppta åtgärden där den misslyckades tidigare.The AKS engine will resume the operation where it failed the previous time.

Steg för att endast uppgradera OS-avbildningenSteps to only upgrade the OS image

  1. Läs tabellen över Kubernetes-versioner som stöds och kontrol lera om du har den version av AKS-och AKS-basadress som du planerar för uppgraderingen.Review the supported-kubernetes-versions table and determine if you have the version of aks-engine and AKS base Image that you plan for your upgrade. Så här visar du versionen av AKS-motor körning: aks-engine version .To view the version of aks-engine run: aks-engine version.
  2. Uppgradera AKS-motorn enligt detta, på den dator där du har installerat AKS-motor körning: ./get-akse.sh --version vx.xx.x Ersätt x. xx. x med din mål version.Upgrade your AKS engine accordingly, in the machine where you have installed aks-engine run: ./get-akse.sh --version vx.xx.x replacing x.xx.x with your targeted version.
  3. Be din Azure Stack Hub-operatör att lägga till den version av AKS-bas avbildningen som du behöver i Azure Stack Hub Marketplace som du planerar att använda.Ask your Azure Stack Hub operator to add the version of the AKS Base Image you need in the Azure Stack Hub Marketplace that you plan to use.
  4. Kör aks-engine upgrade kommandot med samma version av Kubernetes som du redan använder, men Lägg till --force .Run the aks-engine upgrade command using the same version of Kubernetes that you are already using, but add the --force. Du kan se ett exempel för att framtvinga en uppgradering.You can see an example in Forcing an upgrade.

Steg för att uppdatera klustret till OS-versionen Ubuntu 18,04Steps to update cluster to OS version Ubuntu 18.04

Med AKS Engine version 0.60.1 och senare kan du uppgradera dina virtuella kluster datorer från Ubuntu 16,04 till 18,04.With AKS engine version 0.60.1 and above you can upgrade your cluster VMs from Ubuntu 16.04 to 18.04. Gör så här:Follow these steps:

  1. Leta upp och redigera api-model.json filen som genererades under distributionen.Locate and edit the api-model.json file that was generated during deployment. Detta bör vara samma fil som används för uppgradering eller skalnings åtgärder med aks-engine .This should be the same file used for any upgrade or scale operation with aks-engine.
  2. Leta upp avsnitten för masterProfile och agentPoolProfiles , inom dessa avsnitt, ändra värdet för distro till aks-ubuntu-18.04 .Locate the sections for masterProfile and agentPoolProfiles, within those sections change the value of distro to aks-ubuntu-18.04.
  3. Spara api-model.json filen och Använd api-model.json filen i aks-engin upgrade kommandot som du skulle göra i stegen för att uppgradera till en nyare Kubernetes-versionSave the api-model.json file and use the api-model.json file in your aks-engin upgrade command as you would in the Steps to upgrade to a newer Kubernetes version

Framtvinga en uppgraderingForcing an upgrade

Det kan finnas villkor där du kanske vill framtvinga en uppgradering av klustret.There may be conditions where you may want to force an upgrade of your cluster. Till exempel på en dag kan du distribuera ett kluster i en frånkopplad miljö med den senaste Kubernetes-versionen.For example, on day one you deploy a cluster in a disconnected environment using the latest Kubernetes version. Följande dag Ubuntu frigör en korrigering av ett säkerhets problem för vilken Microsoft genererar en ny AKS-basadress.The following day Ubuntu releases a patch to a vulnerability for which Microsoft generates a new AKS Base Image. Du kan använda den nya avbildningen genom att framtvinga en uppgradering med samma Kubernetes-version som du redan har distribuerat.You can apply the new image by forcing an upgrade using the same Kubernetes version you already deployed.

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

Instruktioner finns i Framtvinga uppgradering.For instructions, see Force upgrade.

Nästa stegNext steps