Imposta azioni per gli eventi relativi all’applicazione di patch del sistema operativo AWS Fargate - Amazon EKS

Contribuisci a migliorare questa pagina

Per contribuire a questa guida per l’utente, seleziona il link Edit this page on GitHub che si trova nel riquadro destro di ogni pagina.

Imposta azioni per gli eventi relativi all’applicazione di patch del sistema operativo AWS Fargate

Amazon EKS applica periodicamente delle patch al sistema operativo per i nodi AWS Fargate al fine di garantirne la sicurezza. Come parte del processo di applicazione delle patch, ricicliamo i nodi per installare le patch del sistema operativo. Gli aggiornamenti vengono effettuati in modo da avere il minore impatto possibile sui servizi. Tuttavia, se i pod non vengono espulsi con successo, a volte è necessario eliminarli. Di seguito sono riportate le azioni che è possibile intraprendere per ridurre al minimo le potenziali interruzioni:

  • Imposta i budget di interruzione dei pod (PDB) appropriati per limitare il numero di pod inattivi.

  • Crea regole di Amazon EventBridge per gestire le espulsioni non riuscite prima che i pod vengano eliminati.

  • Riavvia manualmente i pod interessati prima della data di espulsione indicata nella notifica ricevuta.

  • Crea una configurazione di notifica in Notifiche utente di AWS.

Amazon EKS lavora a stretto contatto con la community di Kubernetes per rendere disponibili le correzioni dei bug e le patch di sicurezza il più rapidamente possibile. L’avvio di tutti i pod Fargate avviene con la versione più recente della patch di Kubernetes, disponibile da Amazon EKS per la versione di Kubernetes del cluster. Se disponi di un pod con una patch di una versione precedente, Amazon EKS potrebbe riciclarlo per aggiornarlo alla versione più recente. Ciò consente di applicare ai pod gli aggiornamenti per la sicurezza più recenti, in modo da ridurre i rischi nel caso in cui si verifichi una problematica di tipo Common Vulnerabilities and Exposures (CVE).

Quando il sistema operativo AWS Fargate viene aggiornato, Amazon EKS ti invia una notifica che include le risorse interessate e la data delle prossime espulsioni dei pod. Se la data di espulsione fornita è scomoda, hai la possibilità di riavviare manualmente i pod interessati prima della data di espulsione indicata nella notifica. Tutti i pod creati prima della data di ricezione della notifica sono soggetti a espulsione. Per ulteriori istruzioni su come riavviare manualmente i pod, consulta Kubernetes Documentation.

Per limitare il numero di pod inattivi durante il riciclo degli stessi, puoi impostare i budget di interruzione dei pod (PDB). Con questa opzione è possibile specificare la disponibilità minima in base ai requisiti di ciascuna applicazione e consentire, allo stesso tempo, l’esecuzione di aggiornamenti. La disponibilità minima del PDB deve essere inferiore al 100%. Per ulteriori informazioni, consulta Specifying a Disruption Budget for your Application nella documentazione di Kubernetes.

Amazon EKS utilizza l’API di espulsione per interrompere in modo sicuro il pod rispettando i budget di interruzione dei pod impostati per l’applicazione. I pod vengono espulsi dalla zona di disponibilità per ridurre al minimo l’impatto. Se l’espulsione ha esito positivo, il nuovo pod riceve la patch più recente e non sono richieste ulteriori operazioni.

Se l’espulsione di un pod ha esito negativo, Amazon EKS invia al tuo account un evento con dettagli relativi al pod in cui si è verificato l’errore. È possibile intraprendere alcune azioni in merito al messaggio prima del periodo di interruzione programmato, che varia in base all’urgenza della patch. Quando è il momento, Amazon EKS proverà a espellere nuovamente i pod. Questa volta, tuttavia, se l’espulsione ha esito negativo non viene inviato un nuovo evento Se l’espulsione continua a non riuscire, i pod esistenti verranno eliminati periodicamente in modo che i nuovi pod possano disporre della patch più recente.

L’esempio seguente mostra un evento ricevuto in caso di espulsione del pod che non riesce. Il messaggio contiene dettagli sul cluster, il nome del pod, il namespace del pod, il profilo Fargate e il periodo di interruzione pianificato.

{ "version": "0", "id": "12345678-90ab-cdef-0123-4567890abcde", "detail-type": "EKS Fargate Pod Scheduled Termination", "source": "aws.eks", "account": "111122223333", "time": "2021-06-27T12:52:44Z", "region": "region-code", "resources": [ "default/my-database-deployment" ], "detail": { "clusterName": "my-cluster", "fargateProfileName": "my-fargate-profile", "podName": "my-pod-name", "podNamespace": "default", "evictErrorMessage": "Cannot evict pod as it would violate the pod's disruption budget", "scheduledTerminationTime": "2021-06-30T12:52:44.832Z[UTC]" } }

L’associazione di molteplici PDB a un singolo pod può causare un evento di errore di espulsione. Questo evento restituisce il messaggio di errore seguente.

"evictErrorMessage": "This pod has multiple PodDisruptionBudget, which the eviction subresource does not support",

È possibile creare un’azione desiderata in base a questo evento. Ad esempio, puoi modificare il budget di interruzione dei pod (PDB) per controllare il modo in cui i pod vengono espulsi. Più specificamente, supponi di iniziare con un PDB che specifica la percentuale di destinazione dei pod disponibili. Prima che i pod vengano terminati in modo forzato durante un aggiornamento, puoi regolare il PDB su una percentuale di pod differente. Per ricevere questo evento, devi creare una regola di Amazon EventBridge nell’account AWS e nella Regione AWS a cui appartiene il cluster. La regola deve utilizzare il modello personalizzato seguente. Per ulteriori informazioni, consulta la sezione Creazione di regole Amazon EventBridge che reagiscono agli eventi nella Guida per l’utente di Amazon EventBridge.

{ "source": ["aws.eks"], "detail-type": ["EKS Fargate Pod Scheduled Termination"] }

L’evento può essere configurato per acquisire un obiettivo adeguato impostato dall’utente. Per un elenco completo delle destinazioni disponibili, consulta Destinazioni di Amazon EventBridge nella Guida per l’utente di Amazon EventBridge. Inoltre puoi creare una configurazione di notifica in Notifiche utente AWS. Quando usi Console di gestione AWS per creare la notifica, sotto la voce Regole degli eventi scegli Elastic Kubernetes Service (EKS) per il Nome di servizio AWS e Arresto programmato di EKS Fargate pod per il Tipo di evento. Per ulteriori informazioni, consulta Guida introduttiva alle Notifiche utente AWS nella Guida per l’utente delle Notifiche utente AWS.

Consulta Domande frequenti: Avviso di espulsione di un Fargate Pod in AWS re:Post per le domande frequenti riguardo alle espulsioni dei pod EKS.