Gestire la capacità e l'overcommit in Red Hat OpenShift può sembrare complesso, ma diventa più semplice se si comprendono alcuni concetti chiave. Di seguito vengono fornite informazioni dettagliate sulle richieste dei pod, i limiti e le procedure consigliate per la loro impostazione, oltre a come ciascun aspetto contribuisce a una gestione efficace della capacità e dell'overcommit.
Richiesta pod
Una richiesta pod è la quantità di risorse di elaborazione (come memoria o CPU) che specifichi come minimo necessario per l'esecuzione del container. Ad esempio, se imposti una richiesta di memoria di 1 Gi, lo scheduler garantisce che almeno 1 Gi di memoria sia disponibile per il pod prima di posizionarlo in un nodo.
Vantaggio della gestione delle capacità: garantisce che le risorse essenziali siano riservate a ogni pod, prevenendo la carenza di risorse e garantendo che tutti i pod dispongano delle risorse minime necessarie per funzionare in modo efficace.
Limite del pod
Un limite del pod è invece la quantità massima di risorse che il pod può utilizzare. Se imposti un limite di memoria di 2 Gi, il pod può utilizzare fino a 2 Gi di memoria e non di più. Il limite viene applicato dal kernel tramite cGroups, per evitare che un singolo pod consumi troppe risorse e incida sulle prestazioni degli altri pod.
Vantaggio della gestione delle capacità: protegge contro l'uso eccessivo delle risorse da parte dei singoli pod, per garantire la distribuzione equa delle risorse tra tutti i pod in esecuzione.
Overcommit
Si verifica un overcommit quando il limite supera la richiesta. Ad esempio, se un pod ha una richiesta di memoria di 1 Gi e un limite di 2 Gi, la pianificazione avviene in base alla richiesta di 1 Gi, ma potrà utilizzare fino a 2 Gi. Ciò significa che il pod ha un overcommit del 200%, poiché può utilizzare il doppio della quantità di memoria garantita.
Vantaggio della gestione della capacità: permette un utilizzo più efficiente delle risorse del cluster consentendo ai pod di utilizzare risorse aggiuntive quando disponibili, senza dover riservare tali risorse.

Conseguenze della mancata impostazione di richieste e limiti
Le richieste e i limiti consentono di eseguire l'istanza di Red Hat OpenShift in modo efficiente e prevedibile. La loro mancata definizione può avere alcune conseguenze.
Nessuna risorsa garantita
Se non imposti le richieste di risorse, lo scheduler non garantisce la quantità specifica di CPU o memoria ai tuoi pod. Se il nodo è sottoposto a un carico elevato, si possono registrare prestazioni scadenti o il malfunzionamento del pod.
Nessun limite massimo all'utilizzo delle risorse
Senza limiti impostati, un container può utilizzare tutta la CPU e la memoria di cui ha bisogno. Ciò può causare una carenza di risorse, perché un container può utilizzare tutte le risorse disponibili causando il malfunzionamento o l'eliminazione di altri container.
Vantaggio della gestione della capacità: l'impostazione di richieste e limiti garantisce l'assegnazione equilibrata delle risorse, prevenendo sia l'under provisioning (carenza di risorse) che l'over provisioning (monopolio delle risorse).
Procedure consigliate per l'impostazione di richieste e limiti
In generale, quando si impostano richieste e limiti, è necessario seguire cinque procedure consigliate:
- Imposta sempre le richieste di memoria e CPU
- Evita di impostare limiti per la CPU, perché può causare throttling
- Monitora il carico di lavoro. Imposta le richieste in base all'utilizzo medio nel tempo
- Imposta i limiti di memoria su un fattore proporzionato alla richiesta
- Utilizza Vertical Pod Autoscaler (VPA) per ottimizzare e regolare questi valori nel tempo
Vantaggio della gestione della capacità: queste procedure garantiscono che ogni pod ottenga quanto necessario, evitando l'assegnazione eccessiva e permettendo l'utilizzo efficiente delle risorse e prestazioni del cluster migliorate.
Utilizzo di Vertical Pod Autoscaler (VPA) per il corretto dimensionamento
Il componente Vertical Pod Autoscaler (VPA) di Red Hat OpenShift adatta la quantità di CPU e memoria assegnata a un pod quando questo richiede più risorse. Quando utilizzi VPA, tieni presente queste indicazioni:
- Installa e configura VPA solo in modalità Recommendation
- Esegui simulazioni di carico reali sui pod
- Osserva i valori consigliati e adegua le risorse del pod
Perché utilizzare solo la modalità Recommendation?
Se imposti VPA sulla modalità Automatic, i pod vengono riavviati per adeguarsi ai valori consigliati. VPA in-place (senza riavvii) è nella versione alpha a partire da Red Hat OpenShift 4.16.
Regolazione del tempo di osservazione per i sistemi di raccomandazione
VPA supporta i sistemi di raccomandazione personalizzati, consentendo di impostare i tempi di osservazione su 1 giorno, 1 settimana o 1 mese, in base alle tue esigenze. Per ulteriori informazioni, leggi Regola automaticamente i livelli delle risorse del pod con Vertical Pod Autoscaler.
Vantaggio della gestione della capacità: VPA aiuta a regolare dinamicamente le richieste e i limiti delle risorse in base ai modelli di utilizzo effettivi. Ciò garantisce un'assegnazione ottimale delle risorse e riduce al minimo l'overcommitment.
Risorse riservate per il sistema in Red Hat OpenShift
Una risorsa può essere designata come "riservata per il sistema". Ciò significa che Red Hat OpenShift assegna una parte delle risorse dei nodi (CPU e memoria) per i processi a livello di sistema, come kubelet e il runtime dei container. I vantaggi sono molti:
- Garantisce risorse dedicate ai processi di sistema, prevenendo conflitti con i carichi di lavoro delle applicazioni.
- Migliora la stabilità e le prestazioni dei nodi evitando l'esaurimento delle risorse per i servizi di sistema essenziali.
- Garantisce un funzionamento affidabile e prestazioni prevedibili del cluster.
Puoi abilitare l'assegnazione automatica delle risorse per i nodi seguendo le istruzioni per i cluster OpenShift autogestiti nella documentazione di OpenShift. Un'istanza OpenShift gestita, come Red Hat OpenShift Service on AWS (ROSA), le gestisce per tuo conto.
Vantaggio della gestione della capacità: l'allocazione delle risorse per i processi di sistema garantisce il corretto funzionamento dei servizi essenziali, prevenendo interruzioni delle prestazioni delle applicazioni dovute a conflitti tra risorse a livello di sistema.
Scalabilità automatica del cluster
Un cluster di scalabilità automatica (autoscaler) aggiunge o rimuove automaticamente i nodi in base alle esigenze. Funziona in combinazione con l'Horizontal Pod Autoscaler (HPA). Per ulteriori informazioni, leggi la Guida di OpenShift Cluster Autoscaler e la Documentazione sulla scalabilità automatica di OpenShift.
Vantaggio della gestione della capacità: la scalabilità automatica del cluster garantisce che il cluster disponga del numero di nodi giusto per gestire il carico di lavoro corrente; la scalabilità viene aumentata o ridotta automaticamente, in base alle esigenze, e ciò contribuisce a mantenere l'utilizzo ottimale delle risorse e l'efficienza dei costi.
Operatore ClusterResourceOverride (CRO)
L'operatore ClusterResourceOverride consente di ottimizzare l'assegnazione delle risorse per garantire un utilizzo efficiente ed equilibrato in tutto il cluster.
Esempio di configurazione
- CPU richiesta: 100 millicore (0,1 core)
- Memoria richiesta: 200 MiB (Megabyte)
- Limite CPU: 200 millicore (0,2 core)
- Limite memoria: 400 MiB
Sostituzioni:
- Sostituzione della richiesta di CPU: 50% di quanto richiesto
- Sostituzione della richiesta di memoria: 75% di quanto richiesto
- Sostituzione del limite della CPU: il doppio della richiesta
- Sostituzione del limite di memoria: il doppio della richiesta
Risorse modificate:
- CPU richiesta: 100 millicore × 50% = 50 millicore (0,05 core)
- Memoria richiesta: 200 MiB × 75% = 150 MiB
- Limite CPU: 50 millicore × 2 = 100 millicore (0,1 core)
- Limite di memoria: 150 MiB × 2 = 300 MiB
Per ulteriori informazioni, leggi la documentazione sull'overcommit a livello di cluster tramite l'operatore Cluster Resource Override.
Vantaggio della gestione della capacità: sostituendo le richieste e i limiti predefiniti delle risorse, è possibile garantire che le risorse siano assegnate in modo efficiente, evitandone l'inutilizzo e l'overcommit.
Quadro di scalabilità
Possiamo immaginare un quadro di scalabilità come un cubo multidimensionale. Rimanendo nel quadro, gli obiettivi relativi al livello di servizio (SLO) delle prestazioni vengono raggiunti e il cluster Red Hat OpenShift funziona senza problemi. Muovendosi lungo una dimensione, la capacità corrispondente alle altre dimensioni diminuisce. Puoi utilizzare la dashboard di OpenShift per monitorare la tua zona verde (che delimita la zona di comfort per la scalabilità degli oggetti del cluster) e la zona rossa (oltre la quale non è necessario ridimensionare gli oggetti del cluster).

Per ulteriori informazioni, leggi la documentazione sulla dashboard delle metriche dei nodi.
Vantaggi della gestione della capacità: la comprensione e l'operatività all'interno del quadro di scalabilità contribuiscono al corretto funzionamento del cluster con carichi variabili, prevenendo i sovraccarichi di risorse e garantendo prestazioni coerenti.
Scalabilità automatica dei pod
Esistono diversi metodi per la scalabilità automatica dei pod su Red Hat OpenShift. Abbiamo parlato di Vertical Pod Autoscaling (VPA), ma esistono anche altre strategie.
Horizontal Pod Autoscaling (HPA)
HPA consente la scalabilità in direzione orizzontale dei pod aggiungendo più repliche. È utile per le applicazioni stateless negli ambienti di produzione, poiché migliora le prestazioni e l'uptime delle applicazioni gestendo meglio il carico ed evitando arresti causati da memoria insufficiente. Per ulteriori informazioni, leggi la documentazione sulla scalabilità automatica dei pod con Horizontal Pod Autoscaling.
Operatore Custom Metric Autoscaler
L'operatore permette la scalabilità dei pod in base a metriche definite dall'utente, adatte ad ambienti diversi, tra cui produzione, test e sviluppo. Migliora i tempi di attività e le prestazioni delle applicazioni grazie al monitoraggio e alla scalabilità in base a specifici punti di pressione. Per ulteriori informazioni, leggi la panoramica sull'operatore Custom Metrics Autoscaler.
Vantaggio della gestione della capacità: la scalabilità automatica in base alla domanda dei carichi di lavoro garantisce che le applicazioni dispongano sempre delle risorse necessarie per gestire carichi variabili, migliorando sia le prestazioni che l'efficienza delle risorse.
Scheduler di OpenShift
Il profilo LowNodeUtilization dello scheduler di OpenShift distribuisce i pod in modo uniforme tra i nodi per ridurre l'utilizzo delle risorse per ciascun nodo. I vantaggi includono:
- Efficienza dei costi negli ambienti cloud, ottenuta riducendo al minimo il numero di nodi necessari.
- Migliore assegnazione delle risorse nel cluster.
- Efficienza energetica dei data center.
- Migliori prestazioni per prevenire il sovraccarico dei nodi.
- Prevenzione dell'esaurimento delle risorse tramite il bilanciamento dei carichi di lavoro.
Per ulteriori informazioni, leggi la documentazione su come pianificare i pod con un profilo scheduler.
Vantaggi della gestione della capacità: garantendo una distribuzione uniforme delle risorse, lo scheduler aiuta a evitare gli hotspot e i nodi sottoutilizzati, ottenendo un cluster più equilibrato ed efficiente.
Descheduler OpenShift
Il profilo AffinityAndTaints elimina i pod che violano l'antiaffinità tra i nodi, l'affinità dei nodi e le contaminazioni. I vantaggi includono:
- Correzione del posizionamento non ottimale dei pod.
- Applicazione delle affinità e delle antiaffinità dei nodi.
- Rispondere alle modifiche alle contaminazioni del nodo per garantire che solo i pod compatibili rimangano nel nodo
Per ulteriori informazioni, leggi la documentazione su come eliminare i pod con il descheduler
.Vantaggi della gestione della capacità: il descheduler aiuta a mantenere il posizionamento ottimale dei pod nel tempo, adattandosi alle modifiche del cluster e garantendo un uso efficiente delle risorse, rispettando al contempo i vincoli di affinità e contaminazione.
Seguendo le procedure consigliate e utilizzando gli strumenti disponibili in OpenShift, puoi gestire in modo efficace la capacità e l'overcommit, assicurando che le tue applicazioni funzionino in modo fluido ed efficiente.
Funzionalità di corretto dimensionamento di Red Hat Advanced Cluster Management
La funzionalità di corretto dimensionamento di Red Hat Advanced Cluster Management for Kubernetes è ora disponibile come anteprima avanzata per gli sviluppatori. L'obiettivo di RHACM Right Sizing è fornire ai team di progettazione delle piattaforme suggerimenti relativi a CPU e spazio dei nomi basato sulla memoria. La funzionalità di corretto dimensionamento di RHACM è attualmente basata sulle regole di registrazione Prometheus, che consentono di applicare la logica del valore massimo e di picco a diversi periodi di aggregazione (1, 2, 5, 10, 30, 60 e 90 giorni).
I vantaggi dell'utilizzo della funzionalità di corretto dimensionamento di RHACM includono:
- Identificazione degli elementi che incidono maggiormente sulle risorse (ad esempio, le aree che causano l'inutilizzo).
- Promozione della trasparenza in tutta l'organizzazione e attivazione di conversazioni pertinenti.
- Gestione migliorata delle risorse tramite RHACM per ottenere più efficienza dei costi e ottimizzazione delle risorse, indipendentemente dal numero di cluster gestiti da distribuire.
- Navigazione utente semplificata fornita in una dashboard Grafana dedicata, parte della console RHACM.
Vantaggio della gestione della capacità: le funzionalità di corretto dimensionamento di RHACM consentono agli ingegneri della piattaforma di accedere ai relativi suggerimenti basati sulla CPU e sulla memoria visualizzati in una dashboard Grafana dedicata, parte della console Red Hat Advanced Cluster Management for Kubernetes; gli utenti possono accedere ai principali suggerimenti in base a vari periodi di aggregazione, inclusi intervalli di tempo più lunghi, poiché l'utilizzo varia nel tempo. I suggerimenti risultano quindi intuitivi e facilmente fruibili (vedi le figure seguenti).


Configurazione
Per ulteriori informazioni sui prerequisiti e sulle fasi di installazione, consulta il nostro blog dedicato. Trovi altri approfondimenti anche in questo repository GitHub. Stiamo lavorando alla versione in anteprima tecnologica e al contempo valutiamo la possibilità di fornire suggerimenti a diversi livelli. A differenza della funzionalità di ottimizzazione delle risorse di gestione dei costi di Insights (vedi più avanti), la funzionalità di corretto dimensionamento di RHACM è una soluzione che non richiede la condivisione dei dati analitici con Red Hat.
Ottimizzazione delle risorse per OpenShift con la gestione dei costi di Red Hat Insights
Definizione
La funzionalità di gestione dei costi di Red Hat Insights è la nostra soluzione SaaS che offre un'unica visualizzazione per tutte le spese relative al cloud e a OpenShift, anche on premise.
Resource Optimization for OpenShift, parte della funzione di gestione dei costi di Red Hat Insights, è ora generalmente disponibile. L'obiettivo della funzionalità di ottimizzazione delle risorse di Red Hat Insights è fornire ai team di sviluppo suggerimenti specifici e fruibili su CPU e memoria. La funzionalità è supportata dal progetto open source Kruize.
Vantaggi
L'ottimizzazione delle risorse per OpenShift offre agli sviluppatori suggerimenti a livello di container, inclusi container, deployment, deploymentconfig, statefulset e replicaset.
Vengono generati due set di suggerimenti:
- Suggerimenti sui costi. Consulta questi suggerimenti per risparmiare denaro o per ottimizzare l'utilizzo dei cluster regolando le quote dello spazio dei nomi, le dimensioni dei nodi o il numero di nodi.
- Suggerimenti sulle prestazioni. Dai un'occhiata a questi suggerimenti quando la tua priorità è raggiungere le massime prestazioni delle applicazioni in funzione dell'hardware disponibile.
Attualmente, entrambi i tipi di suggerimenti vengono generati in tre intervalli di tempo: 24 ore di osservazione, 7 giorni di osservazione e 15 giorni di osservazione.
L'ottimizzazione delle risorse per i suggerimenti di OpenShift generati dalla funzionalità di gestione dei costi di Red Hat Insights può aiutarti a risparmiare denaro e a ottimizzare le prestazioni delle tue applicazioni. Inoltre, puoi visualizzare i suggerimenti nel contesto, insieme al costo monetario del carico di lavoro.

Configurazione
L'ottimizzazione delle risorse per i suggerimenti di OpenShift è un'altra caratteristica della gestione dei costi di Red Hat Insights. Segui la sintesi sulla gestione dei costi di Red Hat Insights per configurarlo e utilizza l'API Cost Management avanzata per creare una dashboard personalizzata nel tuo strumento di business intelligence o visualizzazione preferito, comeMicrosoft Excel, Power BI o Grafana. Non è necessario eseguire configurazioni complesse o assegnare risorse costose per l'elaborazione: Cost Management Metrics Operator invia i dati di utilizzo a Red Hat Hybrid Cloud Console per l'analisi e genera per te informazioni dettagliate su costi e risorse (se i cluster non sono connesso a Internet, consulta la documentazione sulla modalità disconnessa).
Sugli autori
Vanessa is a Senior Product Manager in the Observability group at Red Hat, focusing on both OpenShift Analytics and Observability UI. She is particularly interested in turning observability signals into answers. She loves to combine her passions: data and languages.
Pau Garcia Quiles joined Red Hat in 2021 as Principal Product Manager. He has 20 years of experience in IT in various roles, both as a vendor and as a customer, systems administrator, software developer and project manager. He has been involved in open source for more than 15 years, most notably as a Debian maintainer, KDE developer and Uyuni developer.
Altri risultati simili a questo
Ricerca per canale
Automazione
Novità sull'automazione IT di tecnologie, team e ambienti
Intelligenza artificiale
Aggiornamenti sulle piattaforme che consentono alle aziende di eseguire carichi di lavoro IA ovunque
Hybrid cloud open source
Scopri come affrontare il futuro in modo più agile grazie al cloud ibrido
Sicurezza
Le ultime novità sulle nostre soluzioni per ridurre i rischi nelle tecnologie e negli ambienti
Edge computing
Aggiornamenti sulle piattaforme che semplificano l'operatività edge
Infrastruttura
Le ultime novità sulla piattaforma Linux aziendale leader a livello mondiale
Applicazioni
Approfondimenti sulle nostre soluzioni alle sfide applicative più difficili
Virtualizzazione
Il futuro della virtualizzazione negli ambienti aziendali per i carichi di lavoro on premise o nel cloud