Använd Planerat underhåll för att schemalägga och kontrollera uppgraderingar för ditt AKS-kluster (Azure Kubernetes Service)

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

AKS-klustret har regelbundet underhåll som utförs automatiskt. Det finns två typer av underhållsåtgärder: AKS-initierade och användarinitierade. AKS-initierat underhåll omfattar de veckovisa versioner som AKS utför för att hålla klustret uppdaterat med de senaste funktionerna och korrigeringarna. Användarinitierat underhåll omfattar automatiska klusteruppgraderingar och automatiska säkerhetsuppdateringar för Node OS. Med funktionen Planerat underhåll kan du köra båda typerna av underhåll i valfri takt, vilket minimerar påverkan på arbetsbelastningen.

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 kontrollerar du att du uppgraderar till den senaste versionen med hjälp av az upgrade 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 fönster för planerat underhåll 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.
  • Att utföra underhållsåtgärder anses endast vara bästa möjliga och garanteras inte ske inom ett angivet fönster.

Schemakonfigurationer för planerat underhåll

Det finns tre tillgängliga konfigurationstyper för underhållsschema: default, aksManagedAutoUpgradeScheduleoch aksManagedNodeOSUpgradeSchedule.

  • default är en grundläggande konfiguration som används för att styra AKS-versioner. Det kan ta upp till två veckor att distribuera versionerna till alla regioner från den första leveranstiden på grund av Azure Valv Deployment Practices (SDP). 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 per region med spåraren för veckoversioner.
  • 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 AKS-kluster (Azure Kubernetes Service).
  • aksManagedNodeOSUpgradeSchedule styr när du ska utföra nodoperativsystemets 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 den automatiska uppgraderingskanalen 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 konfigurationerna aksManagedAutoUpgradeSchedule eller aksManagedNodeOSUpgradeSchedule med hjälp av az aks maintenanceconfiguration update 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).

En default underhållsperiod har följande egenskaper:

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

En aksManagedAutoUpgradeSchedule eller aksManagedNodeOSUpgradeSchedule underhållsperiod har följande egenskaper:

Name Beskrivning Standardvärde
utcOffset Används för att fastställa 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 Ej tillämpligt
schedule Används för att fastställa frekvensen. Det finns tre typer: Weekly, AbsoluteMonthlyoch RelativeMonthly Ej tillämpligt
intervalDays Intervallet i dagar för underhåll körs. Gäller endast för aksManagedNodeOSUpgradeSchedule Ej tillämpligt
intervalWeeks Intervallet i veckor för underhållskörningar Ej tillämpligt
intervalMonths Intervallet i månader för underhållskörningar Ej tillämpligt
dayOfWeek Den angivna veckodagen för underhåll som ska påbörjas Ej tillämpligt
durationHours Varaktigheten för fönstret för underhåll som ska köras Ej tillämpligt
notAllowedDates Anger ett intervall med datum som underhåll inte kan köras, bestäms av start och end underordnade egenskaper. Gäller endast när du skapar underhållsfönstret med hjälp av en konfigurationsfil Ej tillämpligt

Förstå schematyper

Det finns fyra tillgängliga schematyper: Daily, Weekly, AbsoluteMonthlyoch RelativeMonthly. Dessa schematyper gäller endast för aksManagedClusterAutoUpgradeSchedule och aksManagedNodeOSUpgradeSchedule konfigurationer. Daily scheman gäller endast för aksManagedNodeOSUpgradeSchedule typer.

Kommentar

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

Dagligt schema

Kommentar

Dagliga scheman gäller endast för aksManagedNodeOSUpgradeSchedule konfigurationstyper.

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

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

Veckoschema

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

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

AbsoluteMonthly-schema

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

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

RelativeMonthly-schema

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 av az aks maintenanceconfiguration add kommandot .

    Det första exemplet lägger till en ny default konfiguration som schemalägger underhåll för körning 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 av az aks maintenanceconfiguration update 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 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 av az aks maintenanceconfiguration show 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 av az aks maintenanceconfiguration delete 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 du om en underhållshändelse har inträffat?

    För versioner kontrollerar du klustrets region och letar upp versionsinformation i veckoversioner och kontrollerar om den matchar ditt underhållsschema eller inte. 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 nämns i Uppgradera ett AKS-kluster. AKS genererar även uppgraderingsrelaterade Event Grid-händelser. Mer information finns i AKS som en Event Grid-källa.

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

    Ja, du kan köra alla tre konfigurationerna, t.exdefault. , aksManagedAutoUpgradeScheduleaksManagedNodeOSUpgradeSchedulesamtidigt. Om fönstren överlappar AKS bestämmer körningsordningen.

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

    Den automatiska AKS-uppgraderingen behöver en viss tid för att ta hänsyn till underhållsfönstret. Vi rekommenderar minst 24 timmar mellan skapandet eller uppdateringen av en underhållskonfiguration den schemalagda starttiden.

    Se också till att klustret startas när fönstret för planerat underhåll startas. Om klustret stoppas frigörs dess kontrollplan och inga åtgärder kan utföras.

  • Den automatiska AKS-uppgraderingen uppgraderade inte alla mina agentpooler – eller så uppgraderades en av poolerna utanför underhållsfönstret?

    Om en agentpool inte kan uppgraderas (till exempel på grund av att podduppehållsbudgetar förhindrar att den uppgraderas) eller är i ett feltillstånd, kan den uppgraderas senare utanför underhållsfönstret. Det här scenariot kallas "catch-up upgrade" och undviker att låta agentpooler med en annan version än AKS-kontrollplanet.

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

    Vi rekommenderar att du ställer in schemat för SecurityPatch Node OS-säkerhetsuppdateringar till en veckovis takt om du använder NodeImage kanalen eftersom en ny nodavbildning levereras varje vecka och varje dag om du väljer att kanalen ska ta emot dagliga säkerhetsuppdateringar. Ange schemat för automatisk uppgradering till en månatlig takt för att hålla koll på 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