Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: ✔️ AKS Automatic ✔️ AKS Standard
In dit artikel wordt beschreven hoe Azure Kubernetes Service (AKS) clusterupgrades automatisch kan blokkeren wanneer het afgeschafte Kubernetes API-gebruik detecteert.
Voor de meeste productieworkloads is AKS Automatic de aanbevolen productierijpe standaardoplossing voor AKS. Detectie van fouten in de Kubernetes-API is vooraf geconfigureerd op zowel automatische AKS- als AKS Standard-clusters.
Gedrag in AKS Automatic en AKS Standard
Beide clustermodi omvatten deze beveiliging:
- AKS Automatisch: standaard opgenomen als onderdeel van AKS Automatische platformbeveiligingen die gereed zijn voor productie.
- AKS Standard: standaard opgenomen in AKS Standard-clusters.
In beide modi kan AKS secundaire versie-upgradebewerkingen blokkeren wanneer wordt gedetecteerd dat het recente gebruik van API's is afgeschaft of verwijderd in de kubernetes-doelversie.
Overzicht
Als u binnen een ondersteunde Kubernetes-versie wilt blijven, moet u uw cluster ten minste één keer per jaar upgraden en voorbereiden op mogelijke onderbrekingen. Deze onderbrekingen kunnen api-belangrijke wijzigingen, afschaffingen en afhankelijkheden zijn, zoals Helm en Container Storage Interface (CSI). Het kan lastig zijn om te anticiperen op deze onderbrekingen en kritieke workloads te migreren zonder uitvaltijd.
Wanneer AKS afgeschaft API-gebruik voor de doelversie detecteert, kunnen bewerkingen voor secundaire versie-upgrades automatisch worden geblokkeerd en wordt u gewaarschuwd voor het probleem. Dit gedrag helpt u onverwachte onderbrekingen te voorkomen en geeft u tijd om afgeschaft API-gebruik op te lossen voordat u doorgaat met de upgrade.
Prerequisites
Zorg ervoor dat u voldoet aan de volgende vereisten:
- De upgradebewerking is een kleine versiewijziging van Kubernetes voor het clusterbesturingsvlak.
- De Kubernetes-doelversie is 1.26 of hoger.
- Het laatst geziene gebruik van afgeschafte API's voor de doelversie vond plaats binnen 12 uur vóór de upgradebewerking. AKS registreert het gebruik elk uur, dus gebruik van het afgelopen uur is mogelijk nog niet zichtbaar in de detectie.
Notitie
U hoeft deze detectiefunctie niet handmatig in te schakelen. Automatische AKS- en AKS Standard-clusters configureren deze vooraf.
Gestopte upgradebewerkingen beperken
Als u aan de vereisten voldoet, voert u een upgrade uit en ontvangt u een foutbericht dat vergelijkbaar is met het volgende foutbericht:
Bad Request({
"code": "ValidationError",
"message": "Control Plane upgrade is blocked due to recent usage of a Kubernetes API deprecated in the specified version. Please refer to https://kubernetes.io/docs/reference/using-api/deprecation-guide to migrate the usage. To bypass this error, set enable-force-upgrade in upgradeSettings.overrideSettings. Bypassing this error without migrating usage will result in the deprecated Kubernetes API calls failing. Usage details: 1 error occurred:\n\t* usage has been detected on API flowcontrol.apiserver.k8s.io.prioritylevelconfigurations.v1beta1, and was recently seen at: 2023-03-23 20:57:18 +0000 UTC, which will be removed in 1.26\n\n",
"subcode": "UpgradeBlockedOnDeprecatedAPIUsage"
})
Gebruik een van de volgende opties:
- Het gebruik van afgeschafte API's verwijderen (aanbevolen)
- Validatie overslaan om API-wijzigingen te negeren.
Het gebruik van afgeschafte API's verwijderen (aanbevolen)
Navigeer in Azure Portal naar uw clusterresource en selecteer Problemen vaststellen en oplossen
Selecteer Maken, upgraden, verwijderen en schalen>Verouderingen van Kubernetes-API's.
Wacht 12 uur vanaf het tijdstip waarop voor het laatst verouderd API-gebruik is waargenomen. Alleen-lezen werkwoorden worden uitgesloten van het afgeschafte API-gebruik, namelijk Get/List/Watch. U kunt ook het afgelopen API-gebruik controleren door Container Insights in te schakelen en kube-auditlogboeken te verkennen.
Voer de clusterupgrade opnieuw uit.
Validatie overslaan om API-wijzigingen te negeren
Notitie
Voor deze methode is Azure CLI versie 2.57 of hoger vereist. Als u de PREVIEW CLI-extensie hebt geïnstalleerd, werkt u bij naar versie 3.0.0b10 of hoger. Deze methode wordt niet aanbevolen voor normale productiebewerkingen, omdat afgeschafte API's in de doelversie van Kubernetes op lange termijn mislukken. Verwijder afgeschaft API-gebruik zo snel mogelijk na de upgrade.
Voer de upgrade uit met validatieomzeiling door de opdracht az aks upgrade met --enable-force-upgrade te gebruiken en --upgrade-override-until in te stellen om te bepalen wanneer het bypassvenster eindigt. Als u geen waarde instelt, wordt het venster standaard ingesteld op drie dagen vanaf de huidige tijd. De opgegeven datum en tijd moeten in de toekomst zijn.
# Set environment variables
RESOURCE_GROUP_NAME=<your-resource-group-name>
CLUSTER_NAME=<your-cluster-name>
KUBERNETES_VERSION=<target-kubernetes-version>
# Run the upgrade command with validation bypass
az aks upgrade --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME --kubernetes-version $KUBERNETES_VERSION --enable-force-upgrade --upgrade-override-until 2023-10-01T13:00:00Z
Notitie
Z is de zoneaanduiding voor de UTC/GMT-offset nul, ook wel 'Zulu'-tijd genoemd. In dit voorbeeld wordt het einde van het venster ingesteld op 13:00:00 GMT. Zie Gecombineerde datum- en tijdweergaven voor meer informatie.
Overwegingen voor productie
Volg voor productieworkloads deze werkwijzen:
- Upgradeblokkering behandelen als een veiligheidsmechanisme, geen foutstatus.
- Geef de voorkeur aan API-migratie boven het forceren van een bypass.
- Gebruik geplande onderhoudsvensters en controles vóór de upgrade.
- Bewaak het afgeschafte API-gebruik continu om upgradeblokken van laatste minuten te voorkomen.
Verwante onderwerpen
In dit artikel hebt u gezien hoe u AKS-clusterupgrades automatisch kunt stoppen bij wijzigingen die fouten veroorzaken in de API. Zie Upgradeopties voor Azure Kubernetes Service-clusters (AKS) voor meer informatie over meer upgradeopties voor AKS-clusters.
Zie de volgende artikelen voor meer informatie over AKS Automatic: