Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: ✔️ AKS Automatic ✔️ AKS Standard
Den här artikeln visar hur du migrerar AUTOMATISKA AKS-kluster mellan den hanterade systemnodpoolen som stöds och AKS Standard-konfigurationer.
Migreringsvägar som stöds
| Migreringsväg | Support |
|---|---|
AKS Automatic med hanterade systemnodpooler till AKS Standard (SKU:n base) |
Supported |
| AKS Automatisk utan hanterade systemnodpooler till AKS Automatic med hanterade systemnodpooler | Stöds i förhandsversionen i regioner där hanterade systemnodpooler är allmänt tillgängliga |
Från AKS Standard (base SKU) till AKS Automatic med hanterade systemnodpooler |
Stöds i förhandsversionen i regioner där hanterade systemnodpooler är allmänt tillgängliga |
| AKS Automatisk med hanterade systemnodpooler till AKS Automatisk utan hanterade systemnodpooler | Stöds ej |
Genom att använda hanterade systemnodpooler etablerar, skalar och uppgraderar AKS systemnodpoolerna och systemkomponenterna åt dig och isolerar dem från dina arbetsbelastningar. AUTOMATISKA AKS-kluster backas också upp av ett SLA för poddberedskap och ett drifttids-SLA. Mer information finns i Översikt över AUTOMATISKA AKS-kluster med hanterade systemnodpooler.
Migrera från ett AKS-automatiskt kluster med hanterade systemnodpooler till ett AKS Standard-kluster
Så här fungerar migreringen
Ett AKS-automatiskt kluster med hanterade systemnodpooler kör sina systemkomponenter på systemnodpooler som AKS etablerar, skalar och uppgraderingar åt dig.
Important
Ett AKS Standard-kluster (base SKU) aktiverar inte hanterade systemnodpooler, så du ansvarar för att köra, hantera och uppgradera systemnodpoolen och systemkomponenterna.
Utför följande steg på hög nivå för att migrera från AKS Automatic till AKS Standard:
- Lägg till en självhanterad systemnodpool i ditt AKS-automatiska kluster.
- Uppdatera kluster-SKU:n från
automatictillbase.
När du har uppdaterat SKU:n körs klustret som ett AKS Standard-kluster och systemkomponenterna körs på systemnodpoolen som du har lagt till och hanterar.
Migrera till ett AKS Standard-kluster
Lägg till en självhanterad nodpool för systemnoder i ditt befintliga AKS Automatic-kluster med hjälp av kommandot
az aks nodepool add. Ställ in nodpoolläget så attSystemdet kan köra systemkomponenter efter migreringen.az aks nodepool add \ --resource-group "${RESOURCE_GROUP}" \ --cluster-name "${RESOURCE_NAME}" \ --name systempool \ --mode System \ --node-count 3Uppdatera kluster-SKU:n från
automatictillbasemed hjälpaz aks updateav kommandot .az aks update \ --resource-group "${RESOURCE_GROUP}" \ --name "${RESOURCE_NAME}" \ --sku base
Verifiera migreringen
Bekräfta att klustret nu använder
base-SKU:n genom att använda kommandotaz aks show.az aks show \ --resource-group "${RESOURCE_GROUP}" \ --name "${RESOURCE_NAME}" \ --query "sku" \ --output tableLista nodpoolerna i klustret för att bekräfta att din självhanterade systemnodpool finns och är i läget
Systemmed kommandotaz aks nodepool list.az aks nodepool list \ --resource-group "${RESOURCE_GROUP}" \ --cluster-name "${RESOURCE_NAME}" \ --query "[].{Name:name, Mode:mode, Count:count}" \ --output table
Migrera från ett AKS-automatiskt kluster utan hanterade systemnodpooler till AKS Automatic med hanterade systemnodpooler (förhandsversion)
AKS Automatic stöder förhandsversionsmigrering från icke-hanterade systemnodpooler till hanterade systemnodpooler i regioner där hanterade systemnodpooler är allmänt tillgängliga. Den här migreringen behåller klustret på SKU: automatic n och flyttar AKS-systemkomponenter till en systemnodpool som hanteras av AKS.
Förutsättningar
Important
AKS-förhandsversionsfunktioner är tillgängliga via självbetjäning och frivillig registrering. Förhandsversioner tillhandahålls "i befintligt skick" och "i mån av tillgång," och de är undantagna från servicenivåavtal och begränsad garanti. AKS-förhandsversioner stöds delvis av kundsupport efter bästa förmåga. Därför är dessa funktioner inte avsedda för produktionsanvändning. Mer information finns i följande supportartiklar:
- Ett befintligt AKS-automatiskt kluster utan hanterade systemnodpooler.
- Azure CLI version 2.86.0 eller senare. Kör
az --versionför att hitta versionen. Om du behöver installera eller uppgradera, se Installera Azure CLI. - Den senaste versionen av
aks-previewAzure CLI-tillägget. - Funktionsflaggan
Microsoft.ContainerService/NonHoboToHoboConversionPreviewsom är registrerad i din prenumeration.
Registrera funktionsflaggan NonHoboToHoboConversionPreviewaz feature register med hjälp av kommandot :
az feature register \
--namespace Microsoft.ContainerService \
--name NonHoboToHoboConversionPreview
Kontrollera registreringsstatusen az feature show med hjälp av kommandot :
az feature show \
--namespace Microsoft.ContainerService \
--name NonHoboToHoboConversionPreview \
--query properties.state \
--output tsv
Vänta tills kommandot returneras Registered innan du fortsätter. Uppdatera sedan registreringen av resursprovidern Microsoft.ContainerService .
az provider register --namespace Microsoft.ContainerService
Installera eller uppdatera aks-preview tillägget:
az extension add --name aks-preview
az extension update --name aks-preview
Migrera ett AKS-hanterat virtuellt nätverkskluster
För ett AKS-automatiskt kluster som använder AKS-hanterat nätverk migrerar du till hanterade systemnodpooler med hjälp az aks update av kommandot med parametern --enable-hosted-system :
az aks update \
--resource-group "${RESOURCE_GROUP}" \
--name "${RESOURCE_NAME}" \
--enable-hosted-system
Migrera ett anpassat virtuellt nätverkskluster
För ett AKS-automatiskt kluster som använder ett anpassat virtuellt nätverk anger du ett undernät för den hanterade systemnodpoolen med hjälp av parametern --system-node-subnet-id . Systemnodens undernät måste:
- Vara i samma virtuella nätverk och region som klustret.
- Var minst
/26. - Inte delegeras till en annan tjänst.
- Ska skilja sig från nätverksnodens undernät.
Parametern --node-subnet-id är valfri. Om du inte anger det använder AKS det befintliga undernätet för systemnodspoolen.
az aks update \
--resource-group "${RESOURCE_GROUP}" \
--name "${RESOURCE_NAME}" \
--enable-hosted-system \
--system-node-subnet-id "${SYSTEM_NODE_SUBNET_ID}" \
--node-subnet-id "${NODE_SUBNET_ID}"
Verifiera migreringen
Bekräfta att klustret använder hanterade systemnodpooler med hjälp az aks show av kommandot :
az aks show \
--resource-group "${RESOURCE_GROUP}" \
--name "${RESOURCE_NAME}" \
--query hostedSystemProfile \
--output json
Följande exempelutdata visar att egenskapen hostedSystemProfile.enabled är inställd på true:
{
"enabled": true,
"nodeSubnetId": "<node-subnet-resource-id>",
"systemNodeSubnetId": "<system-node-subnet-resource-id>"
}
Migrera från ett AKS Standard-kluster till ett AKS Automatic-kluster med hanterade systemnodpooler (förhandsversion)
AKS stöder förhandsversionsmigrering från AKS Standard-kluster (base SKU) till AKS Automatic-kluster med hanterade systemnodpooler i regioner där hanterade systemnodpooler är allmänt tillgängliga.
Om du vill migrera konfigurerar du först AKS Standard-klustret så att det matchar AKS Automatic-konfigurationen och uppdaterar sedan klustrets SKU. Det mesta av arbetet är att förbereda klustret. Slutför följande avsnitt i ordning eftersom flera inställningar är beroende av att andra konfigureras först.
Innan du börjar
Important
AKS-förhandsversionsfunktioner är tillgängliga via självbetjäning och frivillig registrering. Förhandsversioner tillhandahålls "i befintligt skick" och "i mån av tillgång," och de är undantagna från servicenivåavtal och begränsad garanti. AKS-förhandsversioner stöds delvis av kundsupport efter bästa förmåga. Därför är dessa funktioner inte avsedda för produktionsanvändning. Mer information finns i följande supportartiklar:
- Ett befintligt AKS Standard-kluster (
baseSKU). Allmänna krav och begränsningar för AKS Automatic finns i Snabbstart: Skapa ett Azure Kubernetes Service (AKS) Automatic-kluster och Översikt över AKS Automatic-kluster med hanterade systemnodpooler. - Azure CLI version 2.86.0 eller senare och den senaste versionen av
aks-previewtillägget. - Funktionsflaggan
Microsoft.ContainerService/NonHoboToHoboConversionPreviewsom är registrerad i din prenumeration. Om du vill registrera funktionsflaggan och installera tillägget följer du stegen i Förutsättningar.
Ange miljövariabler för klustret:
export RESOURCE_GROUP="<resource-group>"
export RESOURCE_NAME="<cluster-name>"
export NODE_RESOURCE_GROUP=$(az aks show --resource-group "${RESOURCE_GROUP}" --name "${RESOURCE_NAME}" --query nodeResourceGroup --output tsv)
Migreringskrav
Innan du kan uppdatera SKU:n måste klustret uppfylla följande krav. Vissa krav varierar beroende på om klustret använder ett AKS-hanterat virtuellt nätverk eller ett anpassat virtuellt nätverk. Du kan konfigurera de här inställningarna med hjälp av Azure-portalen, Azure CLI, en ARM-mall eller andra verktyg. Resten av den här artikeln visar de Azure CLI stegen i den ordning som du bör tillämpa dem.
| Krav | Obligatorisk inställning | Learn more |
|---|---|---|
| Klusternivå | Standard | Prisnivåer för AKS |
| SKU för load balancer | Standard | Anpassa klusterutgående trafik med utgående typer |
| Typ av utgående | AKS-hanterat virtuellt nätverk: hanterad NAT-gateway (StandardV2). Den loadBalancer utgående typen stöds inte.Anpassat virtuellt nätverk: valfri utgående typ. |
Uppdatera outboundType efter att klustret har skapats |
| Klusteridentitet | AKS-hanterat virtuellt nätverk: systemtilldelad hanterad identitet. Anpassat virtuellt nätverk: användartilldelad hanterad identitet med rollen Nätverksadministratör i det virtuella nätverket. |
Använd en användartilldelad hanterad identitet |
| Integrering av VNet för API-server | Aktiverad med ett dedikerat API-serverundernät i samma virtuella nätverk som dina noder | Konvertera ett befintligt AKS Standard-kluster till API Server VNet-integrering |
| Plugin-program för nätverk | Azure CNI Overlay (azure plugin i overlay läge) |
Uppdatera IPAM-läget till Azure CNI Overlay |
| Nätverksdataplan och nätverkspolicy | Cilium | Azure CNI drivs av Cilium |
| läge för nodetablering | Auto | Automatisk provisionering av noder |
| OS SKU för systemnodspool | Azure Linux | Använd Azure Linux-containervärden |
| SSH-åtkomst för systemnodpool | Disabled | Hantera SSH-åtkomst på AKS-klusternoder |
| OS-disk för systemnodpool | Tillfällig | Tillfälliga OS-diskar i AKS |
| Azure Policy-tillägg | Enabled | Använd Azure Policy |
| Azure Key Vault-tillägg för Secrets Provider | Aktiverad, med hemlighetsrotation aktiverad | Använd CSI-drivrutinen för Secrets Store |
| Kanaler för automatuppgradering | Kluster: stableNode OS: NodeImage |
Uppgradera ett AKS-kluster automatiskt |
| Arbetslastidentitet och OIDC-utfärdare | Enabled | Använd Microsoft Entra Workload ID |
| Microsoft Entra integrering och Azure RBAC | Enabled | Microsoft Entra-integrering |
| Lokala konton | Disabled | Hantera lokala konton med Microsoft Entra integrering |
| Bildrensare | Enabled | Bildrengöringsmedel |
| Vertikal podd-autoskalare | Enabled | Autoskalning av lodrät podd |
| KEDA | Enabled | KEDA |
| Låsning av nodresursgrupp | ReadOnly |
Låsning av nodresursgrupp |
Planera migreringen
Avgör om klustret använder ett AKS-hanterat virtuellt nätverk eller ett anpassat virtuellt nätverk. Om följande kommando returnerar ett virtuellt nätverksnamn använder klustret ett AKS-hanterat virtuellt nätverk. Om det inte returnerar något använder klustret ett anpassat virtuellt nätverk.
az network vnet list --resource-group "${NODE_RESOURCE_GROUP}" --query "[].name" --output tsvFlera steg i den här artikeln skiljer sig beroende på typen av virtuellt nätverk.
Kontrollera klustrets aktuella nätverksplugin, utgående typ, SKU för lastbalanserare och begränsningsnivå för nodresursgrupper:
az aks show \ --resource-group "${RESOURCE_GROUP}" \ --name "${RESOURCE_NAME}" \ --query "{networkPlugin:networkProfile.networkPlugin, networkPluginMode:networkProfile.networkPluginMode, outboundType:networkProfile.outboundType, loadBalancerSku:networkProfile.loadBalancerSku, nrgRestrictionLevel:nodeResourceGroupProfile.restrictionLevel}" \ --output table-
Nätverks-plugin: Måste vara
azuremed pluginlägeoverlay. Om klustret använder kubenet eller Azure CNI utan Overlay uppdaterar du det till Azure CNI Overlay innan du fortsätter. Mer information finns i Uppdatera IPAM-läget till Azure CNI Overlay. -
SKU för lastbalanserare: Måste vara
standard. Om klustret fortfarande använderbasic, uppdaterar du det medaz aks update --load-balancer-sku standard. -
Begränsningsnivå för nodresursgrupp: För ett AKS-hanterat virtuellt nätverk måste du skapa ett undernät i nodresursgruppen. Om begränsningsnivån är inställd på
ReadOnly, ändra den tillUnrestrictedinnan du fortsätter. Du låser den igen i ett senare steg.
-
Nätverks-plugin: Måste vara
Granska de ändringar som stör körningen av arbetsbelastningar eller åtkomst och planera en underhållsperiod:
- Om du ändrar utgående typ ändras klustrets utgående IP-adresser. Uppdatera alla brandväggsregler som tillåter trafik från klustret.
- Aktivering av API Server VNet-integrering ändrar API-serverns IP-adress och kräver en omstart av klustret. Den här ändringen är permanent.
- När du ändrar inställningarna för nätverksdataplan, OS SKU och SSH-åtkomst avbildas dina noder om.
- Inaktivering av lokala konton tar bort statiska kubeconfig-autentiseringsuppgifter. Se till att du har åtkomst via Microsoft Entra ID och en Azure RBAC-roll, till exempel Azure Kubernetes Service RBAC-klusteradministratör, innan du inaktiverar dem.
- Migreringen möjliggör Deployment Safeguards i
Enforce-läge med baseline Pod Security Standards. Driftsättningar som inte uppfyller kraven avvisas. Du kan exkludera namnområden, men du kan inte ändra den klusteromfattande nivån tillWarn. Granska dina arbetsbelastningar innan du migrerar. Mer information finns i Använd distributionsspärrar.
Förbereda klusternätverk
Utgående typ: För ett AKS-hanterat virtuellt nätverk måste den utgående typen vara en hanterad NAT-gateway. Den
loadBalancerutgående typen stöds inte. Om det behövs, uppdatera utgående typ:az aks update \ --resource-group "${RESOURCE_GROUP}" \ --name "${RESOURCE_NAME}" \ --outbound-type managedNATGateway \ --outbound-type-sku StandardV2För ett anpassat virtuellt nätverk stöds alla utgående typer och ingen ändring krävs. Mer information finns i Uppdatera outboundType när klustret har skapats.
Klusteridentitet: För ett AKS-hanterat virtuellt nätverk behåller du klustrets systemtilldelade hanterade identitet. För ett anpassat virtuellt nätverk måste klustret använda en användartilldelad hanterad identitet som har rollen Network Contributor på det virtuella nätverket. Tilldela identiteten om det behövs:
az aks update \ --resource-group "${RESOURCE_GROUP}" \ --name "${RESOURCE_NAME}" \ --enable-managed-identity \ --assign-identity "${IDENTITY_RESOURCE_ID}" \ --yesErsätt
IDENTITY_RESOURCE_IDmed resurs-ID för din användartilldelade hanterade identitet. Mer information finns i Användning av en användartilldelad hanterad identitet.API-serverundernät: Skapa ett dedikerat undernät för API-servern i samma virtuella nätverk som dina noder. Undernätet måste vara separat från ditt nodundernät, vara minst
/28och delegeras tillMicrosoft.ContainerService/managedClusters.För ett AKS-hanterat virtuellt nätverk skapar du undernätet i det virtuella nätverket i nodresursgruppen:
export VNET_NAME=$(az network vnet list --resource-group "${NODE_RESOURCE_GROUP}" --query "[0].name" --output tsv) export APISERVER_SUBNET_ID=$(az network vnet subnet create \ --resource-group "${NODE_RESOURCE_GROUP}" \ --vnet-name "${VNET_NAME}" \ --name apiserver-subnet \ --address-prefixes "<unused-address-range>" \ --delegations Microsoft.ContainerService/managedClusters \ --query id --output tsv)För ett anpassat virtuellt nätverk skapar du undernätet i ditt eget virtuella nätverk i stället och anger
APISERVER_SUBNET_IDtill dess resurs-ID.API Server VNet-integrering: Aktivera API Server VNet-integrering med det undernät som du skapade och starta sedan om klustret:
az aks update \ --resource-group "${RESOURCE_GROUP}" \ --name "${RESOURCE_NAME}" \ --enable-apiserver-vnet-integration \ --apiserver-subnet-id "${APISERVER_SUBNET_ID}" az aks stop --resource-group "${RESOURCE_GROUP}" --name "${RESOURCE_NAME}" az aks start --resource-group "${RESOURCE_GROUP}" --name "${RESOURCE_NAME}"Mer information finns i Konvertera ett befintligt AKS Standard-kluster till API Server VNet-integrering.
Nätverksdataplan: Uppdatera nätverksdataplanen till Cilium. Det här kommandot ställer även in nätverkspolicyn till Cilium.
az aks update \ --resource-group "${RESOURCE_GROUP}" \ --name "${RESOURCE_NAME}" \ --network-dataplane ciliumMer information finns i Azure CNI Powered by Cilium.
Important
Uppdatera nätverksdataplanen innan du aktiverar läget Auto node provisioning i nästa avsnitt. När Auto-läge har aktiverats kan du inte ändra nätverkets dataplane.
Förbered systemnodpoolen och nodetablering
Tillfällig OS-disk: Systemnodpoolen måste använda en tillfällig OS-disk. Kontrollera den aktuella operativsystemdisktypen:
az aks nodepool list \ --resource-group "${RESOURCE_GROUP}" \ --cluster-name "${RESOURCE_NAME}" \ --query "[?mode=='System'].{name:name, osDiskType:osDiskType}" \ --output tableDu kan inte ändra operativsystemdisktypen för en befintlig nodpool. Om systemnodpoolen använder en
ManagedOS-disk, lägger du till en ny systemnodpool med--mode System --node-osdisk-type Ephemeral --os-sku AzureLinux --ssh-access disabled, flyttar systemarbetsbelastningarna till den och tar sedan bort den gamla nodpoolen. Du kan sedan hoppa över nästa steg.OS SKU- och SSH-åtkomst: Uppdatera systemnodpoolen så att den använder Azure Linux och inaktivera SSH-åtkomst:
az aks nodepool update \ --resource-group "${RESOURCE_GROUP}" \ --cluster-name "${RESOURCE_NAME}" \ --name "<system-node-pool-name>" \ --os-sku AzureLinux \ --ssh-access disabled \ --yesDet här kommandot installerar om avbilden för nodpoolen. Vänta tills den har slutförts innan du gör andra ändringar i nodpoolen. Mer information finns i Använda Azure Linux Container Host och Hantera SSH-åtkomst på AKS-klusternoder.
Nodetableringsläge: Aktivera etableringsläge för automatisk nod:
az aks update \ --resource-group "${RESOURCE_GROUP}" \ --name "${RESOURCE_NAME}" \ --node-provisioning-mode AutoNär du har aktiverat automatiskt läge kan du inte återgå till manuellt läge utan att först ta bort alla autoetablerade noder. Läs mer i automatisk nodetablering.
Aktivera nödvändiga funktioner och tillägg
Uppdatera klusternivån till Standard och aktivera tilläggen Azure Policy och Azure Key Vault Secrets Provider med hemlighetsrotation:
az aks update --resource-group "${RESOURCE_GROUP}" --name "${RESOURCE_NAME}" --tier standard az aks enable-addons \ --resource-group "${RESOURCE_GROUP}" \ --name "${RESOURCE_NAME}" \ --addons azure-policy,azure-keyvault-secrets-provider \ --enable-secret-rotationAktivera de återstående nödvändiga funktionerna:
az aks update \ --resource-group "${RESOURCE_GROUP}" \ --name "${RESOURCE_NAME}" \ --auto-upgrade-channel stable \ --node-os-upgrade-channel NodeImage \ --enable-workload-identity \ --enable-oidc-issuer \ --enable-aad \ --enable-azure-rbac \ --disable-local-accounts \ --enable-image-cleaner \ --enable-vpa \ --enable-keda \ --yes
Lås nodresursgruppen
Ange begränsningsnivån för nodens resursgrupp till ReadOnly. Gör det här steget sist eftersom låsning blockerar ändringar av resurser i nodresursgruppen, inklusive API-serverundernätet som du skapade tidigare.
az aks update \
--resource-group "${RESOURCE_GROUP}" \
--name "${RESOURCE_NAME}" \
--nrg-lockdown-restriction-level ReadOnly
Mer information finns i Låsning av nodresursgrupp.
Migrera klustret till AKS Automatic
Om något krav fortfarande är ouppfyllt misslyckas migreringskommandot och visar en lista över de ouppfyllda krav som identifierats. Vissa kontroller körs först efter att tidigare kontroller har passerat, så lös de angivna objekten och kör kommandot igen tills det lyckas.
AKS-hanterade virtuellt nätverk
az aks update \
--resource-group "${RESOURCE_GROUP}" \
--name "${RESOURCE_NAME}" \
--sku automatic \
--enable-hosted-system
Anpassat virtuellt nätverk
Ange ett undernät för den hanterade systemnodpoolen med hjälp av parametern --system-node-subnet-id . Information om undernätskrav finns i Migrera ett befintligt AKS Automatic-kluster till hanterade systemnodpooler. Parametern --node-subnet-id är valfri. Om du inte anger det använder AKS det befintliga undernätet för systemnodspoolen.
az aks update \
--resource-group "${RESOURCE_GROUP}" \
--name "${RESOURCE_NAME}" \
--sku automatic \
--enable-hosted-system \
--system-node-subnet-id "${SYSTEM_NODE_SUBNET_ID}" \
--node-subnet-id "${NODE_SUBNET_ID}"
Verifiera migreringen
Bekräfta att klustret använder
automaticSKU:n ochStandardnivån och att uppdateringen har slutförts:az aks show \ --resource-group "${RESOURCE_GROUP}" \ --name "${RESOURCE_NAME}" \ --query "{sku:sku, provisioningState:provisioningState}" \ --output jsonBekräfta att
sku.nameärAutomatic, attsku.tierärStandard, och attprovisioningStateärSucceeded.Bekräfta att klustret använder hanterade systemnodpooler:
az aks show \ --resource-group "${RESOURCE_GROUP}" \ --name "${RESOURCE_NAME}" \ --query hostedSystemProfile \ --output jsonBekräfta
hostedSystemProfile.enabledärtrue. För ett anpassat virtuellt nätverk,systemNodeSubnetIdochnodeSubnetIdvisar resurs-ID:n för undernätet. För ett AKS-hanterat virtuellt nätverk är dessa värdennull.Hämta autentiseringsuppgifter för klustret och bekräfta att alla noder är i
Ready:az aks get-credentials --resource-group "${RESOURCE_GROUP}" --name "${RESOURCE_NAME}" kubectl get nodes -o wide
Beteende vid fel
Om migrering inte kan provisionera infrastruktur för hanterade systempooler (till exempel på grund av regionala kapacitetsbegränsningar) bevarar AKS befintliga system- och användarnodpooler i sitt tillstånd före migreringen.