Aggiornamento automatico delle immagini del sistema operativo del nodo

Il servizio Azure Kubernetes offre più canali di aggiornamento automatico dedicati agli aggiornamenti tempestivi della sicurezza del sistema operativo a livello di nodo. Questo canale è diverso dagli aggiornamenti della versione Kubernetes a livello di cluster e li sostituisce.

Interazioni tra l'aggiornamento automatico del sistema operativo del nodo e l'aggiornamento automatico del cluster

Gli aggiornamenti della sicurezza del sistema operativo a livello di nodo vengono rilasciati a una velocità superiore rispetto agli aggiornamenti delle patch di Kubernetes o delle versioni secondarie. Il canale di aggiornamento automatico del sistema operativo del nodo offre flessibilità e abilita una strategia personalizzata per gli aggiornamenti della sicurezza del sistema operativo a livello di nodo. È quindi possibile scegliere un piano separato per gli aggiornamenti automatici della versione Kubernetes a livello di cluster. È consigliabile usare sia gli aggiornamenti automatici a livello di cluster che il canale di aggiornamento automatico del sistema operativo del nodo insieme. La pianificazione può essere ottimizzata applicando due set separati di finestre di manutenzione - aksManagedAutoUpgradeSchedule per il canale di aggiornamento automatico del cluster e aksManagedNodeOSUpgradeSchedule per il canale di aggiornamento automatico del sistema operativo del nodo.

Canali per gli aggiornamenti delle immagini del sistema operativo del nodo

Il canale selezionato determina la tempistica degli aggiornamenti. Quando si apportano modifiche ai canali di aggiornamento automatico del sistema operativo del nodo, occorre attendere 24 ore prima che le modifiche siano effettive. Quando si passa da un canale a un altro, viene attivata una ricreazione dell'immagine che porta ai nodi in sequenza.

Nota

L'aggiornamento automatico dell'immagine del sistema operativo del nodo non influisce sulla versione Kubernetes del cluster. A partire dall'API versione 2023-06-01, l'impostazione predefinita per qualsiasi nuovo cluster creato è NodeImage.

Sono disponibili i canali di aggiornamento seguenti. È possibile scegliere solo una di queste opzioni:

Canale Descrizione Comportamento specifico del sistema operativo
None Ai nodi non vengono applicati automaticamente gli aggiornamenti della sicurezza. Ciò significa che l'utente è l'unico responsabile degli aggiornamenti della sicurezza. N/D
Unmanaged Gli aggiornamenti del sistema operativo vengono applicati automaticamente tramite l'infrastruttura di applicazione di patch predefinita del sistema operativo. Ai computer appena allocati non vengono inizialmente applicate le patch. Verranno applicate dall'infrastruttura del sistema operativo in un secondo momento. Ubuntu e Azure Linux (pool di nodi CPU) applicano le patch di sicurezza tramite aggiornamento automatico/dnf-automatic circa una volta al giorno intorno alle 06:00 UTC. Windows non applica automaticamente le patch di sicurezza, quindi questa opzione si comporta in modo equivalente a None. È necessario gestire il processo di riavvio usando uno strumento come kured.
SecurityPatch Patch di sicurezza del sistema operativo, testate per il servizio Azure Kubernetes, completamente gestite e applicate con procedure di distribuzione sicure. Il servizio Azure Kubernetes aggiorna regolarmente il disco rigido virtuale (VHD) del nodo con patch dello strumento di manutenzione delle immagini con etichetta "solo sicurezza". Potrebbero verificarsi interruzioni quando vengono applicate le patch di sicurezza ai nodi. Tuttavia, il servizio Azure Kubernetes limita le interruzioni solo ricreando l'immagini dei nodi solo quando necessario, ad esempio per determinati pacchetti di sicurezza del kernel. Quando vengono applicate le patch, il disco rigido virtuale viene aggiornato e i computer esistenti vengono aggiornati a tale disco rigido virtuale, rispettando le finestre di manutenzione e le impostazioni di picco. Se il servizio Azure Kubernetes decide che il reimaging dei nodi non è necessario, applica patch ai nodi in tempo reale senza svuotare i pod e non esegue alcun aggiornamento del disco rigido virtuale. Questa opzione comporta il costo aggiuntivo dell'hosting dei dischi rigidi virtuali nel gruppo di risorse del nodo. Se si usa questo canale, gli aggiornamenti automatici di Linux sono disabilitati per impostazione predefinita. Azure Linux non supporta questo canale nelle macchine virtuali abilitate per la GPU. SecurityPatch funziona sulle versioni patch di Kubernetes deprecate, purché la versione secondaria di Kubernetes sia ancora supportata.
NodeImage Il servizio Azure Kubernetes aggiorna i nodi con un nuovo disco rigido virtuale con patch contenente correzioni di sicurezza e correzioni di bug a frequenza settimanale. L'aggiornamento al nuovo disco rigido virtuale causa interruzioni, in base alle finestre di manutenzione e le impostazioni di picco. Quando si sceglie questa opzione, non viene addebitato alcun costo aggiuntivo per il disco rigido virtuale. Se si usa questo canale, gli aggiornamenti automatici di Linux vengono disabilitati per impostazione predefinita. Gli aggiornamenti delle immagini del nodo supportano le versioni patch deprecate, purché la versione secondaria di Kubernetes sia ancora supportata. Le immagini dei nodi sono testate per il servizio Azure Kubernetes, completamente gestite e applicate con procedure di distribuzione sicure

Impostare il canale di aggiornamento automatico del sistema operativo del nodo per un nuovo cluster

  • Impostare il canale di aggiornamento automatico del sistema operativo del nodo per un nuovo cluster usando il comando az aks create con il parametro --node-os-upgrade-channel. Nell'esempio seguente il canale di aggiornamento automatico del sistema operativo del nodo viene impostato su SecurityPatch.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-os-upgrade-channel SecurityPatch \
        --generate-ssh-keys
    

Impostare il canale di aggiornamento automatico del sistema operativo del nodo per un cluster esistente

  • Impostare il canale di aggiornamento automatico del sistema operativo del nodo per un cluster esistente usando il comando az aks update con il parametro --node-os-upgrade-channel. Nell'esempio seguente il canale di aggiornamento automatico del sistema operativo del nodo viene impostato su SecurityPatch.

    az aks update --resource-group myResourceGroup --name myAKSCluster --node-os-upgrade-channel SecurityPatch
    

Aggiornare la proprietà e la pianificazione

La frequenza predefinita indica che non è stata applicata alcuna finestra di manutenzione pianificata.

Canale Proprietà degli aggiornamenti Frequenza predefinita
Unmanaged Aggiornamenti della sicurezza basati sul sistema operativo. Il servizio Azure Kubernetes non ha alcun controllo su questi aggiornamenti. Di notte intorno alle 6:00 UTC per Ubuntu e Azure Linux. Mensile per Windows.
SecurityPatch Servizio Azure Kubernetes testato, completamente gestito e applicato con procedure di distribuzione sicure. Per altre informazioni, vedere Maggiore sicurezza e resilienza dei carichi di lavoro Canonical in Azure. Settimanale.
NodeImage Servizio Azure Kubernetes testato, completamente gestito e applicato con procedure di distribuzione sicure. Per informazioni in tempo reale sulle versioni, cercare le immagini dei nodi del servizio Azure Kubernetes nello strumento di rilevamento delle versioni del servizio Azure Kubernetes Settimanale.

Nota

Anche se gli aggiornamenti della sicurezza di Windows vengono rilasciati su base mensile, l'uso del canale Unmanaged non applicherà automaticamente questi aggiornamenti ai nodi di Windows. Se si sceglie il canale Unmanaged, è necessario gestire il processo di riavvio per i nodi Windows.

Limitazioni note del canale del nodo

  • Attualmente, quando si imposta il canale di aggiornamento automatico del cluster su node-image, viene impostato automaticamente anche il canale di aggiornamento automatico del sistema operativo del nodo su NodeImage. Non è possibile modificare il valore del canale di aggiornamento automatico del sistema operativo del nodo se il canale di aggiornamento automatico del cluster è node-image. Per impostare il valore del canale di aggiornamento automatico del sistema operativo del nodo, verificare che il valore del canale di aggiornamento automatico del cluster non sia node-image.

  • Il canale SecurityPatch non è supportato nei pool di nodi del sistema operativo Windows.

Nota

Usare l'interfaccia della riga di comando versione 2.61.0 o successiva per il canale SecurityPatch.

Finestre di manutenzione pianificata del sistema operativo del nodo

La manutenzione pianificata per l'aggiornamento automatico del sistema operativo del nodo viene avviata nella finestra di manutenzione specificata.

Nota

Per garantire il corretto funzionamento, usare una finestra di manutenzione di quattro ore o più.

Per altre informazioni sulla manutenzione pianificata, vedere Usare la manutenzione pianificata per pianificare le finestre di manutenzione per il cluster del servizio Azure Kubernetes.

Domande frequenti su aggiornamenti automatici del sistema operativo del nodo

Come è possibile controllare il valore nodeOsUpgradeChannel corrente in un cluster?

Eseguire il comando az aks show e controllare "autoUpgradeProfile" per determinare il valore su cui è impostato nodeOsUpgradeChannel:

az aks show --resource-group myResourceGroup --name myAKSCluster --query "autoUpgradeProfile"

Come è possibile monitorare lo stato degli aggiornamenti automatici del sistema operativo del nodo?

Per visualizzare lo stato degli aggiornamenti automatici del sistema operativo del nodo, cercare i log attività nel cluster. È anche possibile cercare eventi correlati all'aggiornamento specifici come indicato in Aggiornare un cluster del servizio Azure Kubernetes. Il servizio Azure Kubernetes genera anche eventi di Griglia di eventi correlati all'aggiornamento. Per altre informazioni, vedere Servizio Azure Kubernetes come origine di Griglia di eventi.

È possibile modificare il valore del canale di aggiornamento automatico del sistema operativo del nodo se il canale di aggiornamento automatico del cluster è impostato su node-image?

No. Attualmente, quando si imposta il canale di aggiornamento automatico del cluster su node-image, viene impostato automaticamente anche il canale di aggiornamento automatico del sistema operativo del nodo su NodeImage. Non è possibile modificare il valore del canale di aggiornamento automatico del sistema operativo del nodo se il canale di aggiornamento automatico del cluster è node-image. Per poter modificare i valori del canale di aggiornamento automatico del sistema operativo del nodo, verificare che il canale di aggiornamento automatico del cluster non sia node-image.

Nel canale Unmanaged, il servizio Azure Kubernetes non ha alcun controllo su come e quando vengono recapitati gli aggiornamenti della sicurezza. Con SecurityPatch, gli aggiornamenti della sicurezza sono completamente testati e seguono procedure di distribuzione sicure. SecurityPatch rispetta anche le finestre di manutenzione. Per altri dettagli, vedere Aumento della sicurezza e della resilienza dei carichi di lavoro Canonical in Azure.

SecurityPatch comporta sempre una ricreazione dell'immagine dei nodi?

Il servizio Azure Kubernetes limita la ricreazione delle immagini solo quando è assolutamente necessario, come nel caso di alcuni pacchetti kernel che potrebbero richiedere la ricreazione dell'immagine per essere completamente applicati. SecurityPatch è progettato per ridurre al minimo le interruzioni possibili. Se il servizio Azure Kubernetes decide che ricreare le immagini dei nodi non è necessario, applicherà le patch ai nodi in tempo reale senza svuotare i pod e in questi casi non viene eseguito alcun aggiornamento del disco rigido virtuale.

Perché il SecurityPatch canale richiede di raggiungere snapshot.ubuntu.com l'endpoint?

Con il SecurityPatch canale, i nodi del cluster Linux devono scaricare le patch di sicurezza e gli aggiornamenti necessari dal servizio snapshot ubuntu descritto in ubuntu-snapshots-on-azure-ensuring-predictability-and-consistency-in-cloud-deployments.

Come è possibile sapere se un aggiornamento SecurityPatch o NodeImage viene applicato al nodo?

Eseguire il comando seguente per ottenere le etichette dei nodi:

kubectl get nodes --show-labels

Tra le etichette restituite, dovrebbe essere visualizzata una riga simile all'output seguente:

kubernetes.azure.com/node-image-version=AKSUbuntu-2204gen2containerd-202311.07.0

In questo caso, la versione dell'immagine del nodo di base è AKSUbuntu-2204gen2containerd. Se applicabile, in genere fa seguito la versione della patch di sicurezza. Nell'esempio precedente si tratta di 202311.07.0.

Gli stessi dettagli vengono cercati anche nel portale di Azure nella visualizzazione etichetta del nodo:

Screenshot della pagina dei nodi per un cluster del servizio Azure Kubernetes nel portale di Azure. L'etichetta per la versione dell'immagine del nodo mostra chiaramente l'immagine del nodo di base e la data della patch di sicurezza applicata più recente.

Passaggi successivi

Per una descrizione dettagliata delle procedure consigliate per l'aggiornamento e altre considerazioni, vedere Linee guida per l'aggiornamento e le patch del servizio Azure Kubernetes.