Risolvere i problemi relativi agli aggiornamenti dei pacchetti dell'host contenitore Linux di Azure
L'host contenitore Linux di Azure per il servizio Azure Kubernetes ha l'opzione dnf-automatic
abilitata per impostazione predefinita, un servizio systemd che viene eseguito ogni giorno e installa automaticamente tutti i pacchetti aggiornati pubblicati di recente. In questo modo, i pacchetti nell'host contenitore Linux di Azure si aggiornano automaticamente quando viene pubblicata una correzione. Si noti che per alcune impostazioni del canale di aggiornamento del sistema operativo del nodo, l'opzione dnf-automatic
verrà disabilitata per impostazione predefinita.
Sintomi
Tuttavia, a volte i pacchetti nell'host contenitore Linux di Azure non ricevono aggiornamenti automatici, che possono causare i sintomi seguenti:
- Messaggi di errore durante il riferimento o l'uso di un pacchetto aggiornato.
- I pacchetti non funzionano come previsto.
- Le versioni obsolete dei pacchetti vengono visualizzate quando si controlla l'elenco di pacchetti dell'host contenitore Linux di Azure. È possibile verificare se i pacchetti nell'immagine sono sincronizzati con il pacchetto pubblicato di recente visitando il repository in packages.microsoft.com o controllando le note sulla versione nel repository GitHub Linux di Azure.
Causa
Alcuni pacchetti, ad esempio il kernel Linux, richiedono un riavvio per rendere effettivi gli aggiornamenti. Per facilitare i riavvii automatici, la macchina virtuale Linux di Azure esegue il servizio di controllo del riavvio, che crea il file /var/run/reboot-required
quando un aggiornamento del pacchetto richiede un riavvio.
Soluzione
Per assicurarsi che Kubernetes agisca alla richiesta di un riavvio, è consigliabile configurare il DaemonSet Kured. Kured monitora i nodi per il file /var/run/reboot-required
e, quando viene trovato, svuota il lavoro dal nodo e lo riavvia.
Passaggi successivi
Se i passaggi precedenti non risolvono il problema, aprire un ticket di supporto.