Använda planerat underhåll för att schemalägga och kontrollera uppgraderingar för ditt Azure Kubernetes Service-kluster

Den här artikeln visar hur du använder planerat underhåll för att schemalägga och kontrollera kluster- och nodavbildningsuppgraderingar i Azure Kubernetes Service (AKS).

Regelbundet underhåll utförs automatiskt på AKS-klustret. Det finns två typer av underhållsåtgärder:

När du använder funktionen för planerat underhåll i AKS kan du köra båda typerna av underhåll i en takt som du väljer för att minimera påverkan på arbetsbelastningen. Du kan använda planerat underhåll för att schemalägga tidpunkten för automatiska uppgraderingar, men om du aktiverar eller inaktiverar planerat underhåll aktiveras eller inaktiveras inte automatiska uppgraderingar.

Innan du börjar

  • Den här artikeln förutsätter att du har ett befintligt AKS-kluster. Om du inte har något AKS-kluster kan du läsa Skapa ett AKS-kluster.
  • Om du använder Azure CLI uppgraderar du till den senaste versionen med hjälp az upgrade av kommandot .

Att tänka på

När du använder planerat underhåll gäller följande överväganden:

  • AKS förbehåller sig rätten att bryta planerade underhållsperioder för oplanerade, reaktiva underhållsåtgärder som är brådskande eller kritiska. Dessa underhållsåtgärder kan till och med köras under de notAllowedTime perioder eller notAllowedDates perioder som definierats i konfigurationen.
  • Underhållsåtgärder anses endast vara bästa möjliga och är inte garanterade att utföras inom ett angivet fönster.

Schemalägga konfigurationstyper för planerat underhåll

Det finns tre schemakonfigurationstyper för planerat underhåll:

  • default är en grundläggande konfiguration för att kontrollera AKS-versioner. Det kan ta upp till två veckor att distribuera versionerna till alla regioner från den första leveranstiden på grund av säkra distributionsmetoder i Azure.

    Välj default att schemalägga dessa uppdateringar på ett sätt som är minst störande för dig. Du kan övervaka statusen för en pågående AKS-version efter region med den veckovisa versionsspåraren.

  • aksManagedAutoUpgradeSchedule styr när du ska utföra klusteruppgraderingar som schemalagts av din avsedda kanal för automatisk uppgradering. Du kan konfigurera mer noggrant kontrollerade inställningar för kadens och upprepning med den här konfigurationen jämfört med konfigurationen default . Mer information om automatisk uppgradering av kluster finns i Uppgradera automatiskt ett Azure Kubernetes Service-kluster.

  • aksManagedNodeOSUpgradeSchedule styr när du ska utföra nod-operativsystemets säkerhetskorrigering som schemalagts av nodens kanal för automatisk uppgradering av operativsystemet. Du kan konfigurera mer noggrant kontrollerade inställningar för kadens och upprepning med den här konfigurationen jämfört med konfigurationen default . Mer information om automatiska uppgraderingskanaler för nodoperativsystem finns i Korrigera och uppdatera AKS-klusternodavbildningar automatiskt.

Vi rekommenderar att du använder aksManagedAutoUpgradeSchedule för alla scenarier för klusteruppgradering och aksManagedNodeOSUpgradeSchedule för alla scenarier för säkerhetskorrigering av nodoperativsystem.

Alternativet default är endast avsett för veckoversioner av AKS. Du kan växla konfigurationen default till konfigurationen aksManagedAutoUpgradeSchedule eller aksManagedNodeOSUpgradeSchedule med hjälp az aks maintenanceconfiguration update av kommandot .

Skapa ett underhållsperiod

Kommentar

När du använder automatisk uppgradering använder du ett underhållsperiod med en varaktighet på fyra timmar eller mer för att säkerställa rätt funktioner.

Fönster för planerat underhåll anges i UTC (Coordinated Universal Time).

Ett default underhållsperiod har följande äldre egenskaper (rekommenderas inte längre):

Name Beskrivning Standardvärde
timeInWeek I en default konfiguration innehåller den här egenskapen värdena day och hourSlots som definierar ett underhållsperiod. Inte tillämpligt
timeInWeek.day Veckodagen för underhåll i en default konfiguration. Inte tillämpligt
timeInWeek.hourSlots En lista över timslånga tidsintervall för underhåll en viss dag i en default konfiguration. Inte tillämpligt
notAllowedTime Ett intervall med datum som underhåll inte kan köras, bestäms av start och end underordnade egenskaper. Den här egenskapen gäller endast när du skapar underhållsfönstret med hjälp av en konfigurationsfil. Inte tillämpligt

Kommentar

Från API-versionen 2023-05-01 och senare använder du egenskaperna nedan för default konfiguration.

En aksManagedAutoUpgradeSchedule eller aksManagedNodeOSUpgradeSchedule underhållsperiod och default konfiguration från 2023-05-01 API-versionen och framåt har följande egenskaper:

Name Beskrivning Standardvärde
utcOffset Tidszonen för klusterunderhåll. +00:00
startDate Det datum då underhållsperioden börjar gälla. Aktuellt datum vid skapandetillfället
startTime Tiden för underhåll att börja, baserat på tidszonen som bestäms av utcOffset. Inte tillämpligt
schedule Uppgraderingsfrekvensen. Det finns tre typer: Weekly, AbsoluteMonthlyoch RelativeMonthly. Inte tillämpligt
intervalDays Intervallet i dagar för underhåll körs. Det gäller endast för aksManagedNodeOSUpgradeSchedule. Inte tillämpligt
intervalWeeks Intervallet i veckor för underhåll körs. Inte tillämpligt
intervalMonths Intervallet i månader för underhåll körs. Inte tillämpligt
dayOfWeek Den angivna veckodagen för att underhåll ska påbörjas. Inte tillämpligt
durationHours Varaktigheten för fönstret för underhåll som ska köras. Inte tillämpligt
notAllowedDates Ett intervall med datum som underhåll inte kan köras, bestäms av start och end underordnade egenskaper. Det gäller endast när du skapar underhållsfönstret med hjälp av en konfigurationsfil. Inte tillämpligt

Typer av schema

Det finns fyra tillgängliga schematyper: Daily, Weekly, AbsoluteMonthlyoch RelativeMonthly.

Weekly, AbsoluteMonthly, och RelativeMonthly schematyper gäller endast för aksManagedClusterAutoUpgradeSchedule och aksManagedNodeOSUpgradeSchedule konfigurationer. Daily scheman gäller endast för aksManagedNodeOSUpgradeSchedule konfigurationer.

Alla fält som visas för varje schematyp krävs.

Ett Daily schema kan se ut som "var tredje dag":

"schedule": {
    "daily": {
        "intervalDays": 3
    }
}

Ett Weekly schema kan se ut som "varannan vecka på fredag":

"schedule": {
    "weekly": {
        "intervalWeeks": 2,
        "dayOfWeek": "Friday"
    }
}

Ett AbsoluteMonthly schema kan se ut som "var tredje månad den första dagen i månaden":

"schedule": {
    "absoluteMonthly": {
        "intervalMonths": 3,
        "dayOfMonth": 1
    }
}

Ett RelativeMonthly schema kan se ut som "varannan månad den senaste måndagen":

"schedule": {
    "relativeMonthly": {
        "intervalMonths": 2,
        "dayOfWeek": "Monday",
        "weekIndex": "Last"
    }
}

Giltiga värden för weekIndex inkluderar First, Second, Third, Fourthoch Last.

Lägga till en underhållsfönsterkonfiguration

Lägg till en underhållsfönsterkonfiguration i ett AKS-kluster med hjälp az aks maintenanceconfiguration add av kommandot .

Det första exemplet lägger till en ny default konfiguration som schemalägger underhåll så att det körs från 01:00 till 02:00 varje måndag. Det andra exemplet lägger till en ny aksManagedAutoUpgradeSchedule konfiguration som schemalägger underhåll så att det körs var tredje fredag mellan 12:00 och 08:00 i tidszonen UTC+5:30 .

# Add a new default configuration
az aks maintenanceconfiguration add --resource-group myResourceGroup --cluster-name myAKSCluster --name default --weekday Monday --start-hour 1

# Add a new aksManagedAutoUpgradeSchedule configuration
az aks maintenanceconfiguration add --resource-group myResourceGroup --cluster-name myAKSCluster --name aksManagedAutoUpgradeSchedule --schedule-type Weekly --day-of-week Friday --interval-weeks 3 --duration 8 --utc-offset +05:30 --start-time 00:00

Kommentar

När du använder en default konfigurationstyp kan du utelämna parametern --start-time för att tillåta underhåll när som helst under en dag.

Uppdatera en befintlig underhållsperiod

Uppdatera en befintlig underhållskonfiguration med hjälp az aks maintenanceconfiguration update av kommandot .

I följande exempel uppdateras konfigurationen default för att schemalägga underhåll som ska köras från 02:00 till 03:00 varje måndag:

az aks maintenanceconfiguration update --resource-group myResourceGroup --cluster-name myAKSCluster --name default --weekday Monday --start-hour 2

Visa en lista över alla underhållsperioder i ett befintligt kluster

Visa en lista över de aktuella underhållskonfigurationsfönstren az aks maintenanceconfiguration list i AKS-klustret med hjälp av kommandot :

az aks maintenanceconfiguration list --resource-group myResourceGroup --cluster-name myAKSCluster

Visa ett specifikt underhållskonfigurationsfönster i ett befintligt kluster

Visa ett specifikt underhållskonfigurationsfönster i AKS-klustret med hjälp az aks maintenanceconfiguration show av kommandot med parametern --name :

az aks maintenanceconfiguration show --resource-group myResourceGroup --cluster-name myAKSCluster --name aksManagedAutoUpgradeSchedule

Följande exempelutdata visar underhållsfönstret för aksManagedAutoUpgradeSchedule:

{
  "id": "/subscriptions/<subscription>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/maintenanceConfigurations/aksManagedAutoUpgradeSchedule",
  "maintenanceWindow": {
    "durationHours": 4,
    "notAllowedDates": [
      {
        "end": "2024-01-05",
        "start": "2023-12-23"
      }
    ],
    "schedule": {
      "absoluteMonthly": {
        "dayOfMonth": 1,
        "intervalMonths": 3
      },
      "daily": null,
      "relativeMonthly": null,
      "weekly": null
    },
    "startDate": "2023-01-20",
    "startTime": "09:00",
    "utcOffset": "-08:00"
  },
  "name": "aksManagedAutoUpgradeSchedule",
  "notAllowedTime": null,
  "resourceGroup": "myResourceGroup",
  "systemData": null,
  "timeInWeek": null,
  "type": null
}

Ta bort ett underhållskonfigurationsfönster i ett befintligt kluster

Ta bort ett underhållskonfigurationsfönster i AKS-klustret med hjälp az aks maintenanceconfiguration delete av kommandot .

I följande exempel tas underhållskonfigurationen autoUpgradeSchedule bort:

az aks maintenanceconfiguration delete --resource-group myResourceGroup --cluster-name myAKSCluster --name autoUpgradeSchedule

Vanliga frågor

  • Hur kan jag kontrollera de befintliga underhållskonfigurationerna i mitt kluster?

    Använd kommandot az aks maintenanceconfiguration show.

  • Kan reaktivt, oplanerat underhåll även ske under notAllowedTime perioder eller notAllowedDates under perioder?

    Ja. AKS förbehåller sig rätten att bryta dessa fönster för oplanerade, reaktiva underhållsåtgärder som är brådskande eller kritiska.

  • Hur vet jag om en underhållshändelse har inträffat?

    För versioner kontrollerar du klustrets region och söker efter information i veckoversioner för att se om den matchar ditt underhållsschema. Om du vill visa status för dina automatiska uppgraderingar letar du upp aktivitetsloggar i klustret. Du kan också söka efter specifika uppgraderingsrelaterade händelser, som du nämnde i Uppgradera ett AKS-kluster.

    AKS genererar även uppgraderingsrelaterade Azure Event Grid-händelser. Mer information finns i AKS som en Event Grid-källa.

  • Kan jag använda mer än en underhållskonfiguration samtidigt?

    Ja, du kan köra alla tre konfigurationerna samtidigt: default, aksManagedAutoUpgradeScheduleoch aksManagedNodeOSUpgradeSchedule. Om fönstren överlappar bestämmer AKS körningsordningen.

  • Jag har konfigurerat ett underhållsperiod, men uppgraderingen skedde inte. Varför?

    Automatisk uppgradering av AKS behöver en viss tid, vanligtvis inte mer än 15 minuter, för att ta hänsyn till underhållsperioden. Vi rekommenderar minst 15 minuter mellan skapandet eller uppdateringen av en underhållskonfiguration och den schemalagda starttiden.

    Kontrollera också att klustret startas när det planerade underhållsfönstret startar. Om klustret stoppas frigörs dess kontrollplan och inga åtgärder kan utföras.

  • Varför uppgraderades en av mina agentpooler utanför underhållsfönstret?

    Om en agentpool inte uppgraderas (till exempel på grund av att budgeten för poddstörningar förhindrade den) kan den uppgraderas senare, utanför underhållsfönstret. Det här scenariot kallas för en "catch-up upgrade". Det förhindrar att agentpooler uppgraderas med en annan version än AKS-kontrollplanet.

    En annan orsak till att en agentpool oväntat kan uppgraderas är när det inte finns någon definierad underhållskonfiguration eller om den har tagits bort. I så fall uppgraderas ett kluster med automatisk uppgradering men utan underhållskonfiguration vid slumpmässiga tidpunkter (återställningsschema), vilket kan vara en oönstrad tidsram.

  • Finns det några metodtips för underhållskonfigurationerna?

    Vi rekommenderar att du ställer in schemat för nod-OS-säkerhetsuppdateringar till en veckovis takt om du använder NodeImage kanalen, eftersom en ny nodavbildning levereras varje vecka. Du kan också välja SecurityPatch att kanalen ska få dagliga säkerhetsuppdateringar.

    Ange schemat för automatisk uppgradering till en månatlig takt för att hålla dig uppdaterad med Kubernetes N-2-supportprincipen.

    En detaljerad beskrivning av metodtips för uppgradering och andra överväganden finns i AKS-korrigerings- och uppgraderingsvägledning.

Nästa steg