Un modo per migliorare le prestazioni delle applicazioni basate su container è aumentare le risorse cluster aggiungendo nodi o aggiungendo risorse, come CPU o memoria, ai nodi. Questo approccio, tuttavia, può diventare costoso. L'ottimizzazione dei nodi del cluster per migliorare le prestazioni consente di ottimizzare l'utilizzo delle risorse per i carichi di lavoro in modo conveniente. Questo documento descrive come utilizzare l'operatore di ottimizzazione delle prestazioni per ottimizzare i nodi worker al fine di ottimizzare le prestazioni dei carichi di lavoro per Google Distributed Cloud.
Per ottenere il massimo dall'hardware e dal software sottostante, diversi tipi di applicazioni, in particolare quelle ad alte prestazioni, possono trarre vantaggio dall'ottimizzazione delle impostazioni dei nodi come riportato di seguito:
- CPU dedicate per carichi di lavoro sensibili alle prestazioni
- CPU riservate per i daemon e i servizi Kubernetes standard
- Aumento delle dimensioni delle pagine in memoria con 1 GiB (gibibyte) o 2 MiB (mebibyte) largepages
- Distribuzione del carico di lavoro basata sull'architettura del sistema, come processori multi-core e NUMA
Con l'operatore di ottimizzazione delle prestazioni puoi configurare le impostazioni delle prestazioni a livello di nodo creando risorse personalizzate di Kubernetes che applicano le configurazioni delle prestazioni. Ecco i vantaggi:
Singola interfaccia di configurazione unificata: con l'operatore di ottimizzazione delle prestazioni, aggiorni uno o più manifest
PerformanceTuningProfile
che possono essere applicati ai nodi worker con selettori dei nodi. Non è necessario configurare ogni nodo singolarmente con più impostazioni di configurazione e criteri. Questo approccio consente di gestire le configurazioni a livello di nodo e di container in un unico modo unificato.Persistenza e affidabilità: ottieni anche tutta l'affidabilità fornita da Kubernetes con la sua architettura ad alta disponibilità. Le risorse personalizzate di
PerformanceTuningProfile
possono essere aggiornate in qualsiasi momento e le relative impostazioni vengono mantenute nelle principali operazioni del cluster, ad esempio gli upgrade.
L'operatore di ottimizzazione delle prestazioni funziona orchestrando i seguenti strumenti e funzionalità di Kubernetes e del sistema operativo (OS) correlati alle prestazioni:
Per evitare conflitti, quando utilizzi l'operatore di ottimizzazione delle prestazioni, ti consigliamo di non utilizzare le funzionalità e gli strumenti di Kubernetes e del sistema operativo menzionati in precedenza in modo indipendente.
Prerequisiti e limitazioni
Ecco i prerequisiti e le limitazioni per l'utilizzo dell'operatore di ottimizzazione delle prestazioni:
Solo Red Hat Enterprise Linux (RHEL): l'operatore di ottimizzazione delle prestazioni è supportato solo per i nodi che eseguono versioni supportate di RHEL.
Cluster utente o ibrido con nodi worker:l'operatore di ottimizzazione delle prestazioni è supportato per l'uso con i nodi worker solo in cluster utente o ibridi. L'uso dell'operatore di ottimizzazione delle prestazioni per ottimizzare i nodi del piano di controllo non è supportato. L'operatore di ottimizzazione delle prestazioni usa un selettore di nodi per determinare come applicare i profili di ottimizzazione. Per garantire che i profili di ottimizzazione vengano applicati solo ai nodi worker, il
nodeSelector
in ogni risorsa personalizzata del profilo deve includere l'etichetta del nodo worker standardnode-role.kubernetes.io/worker: ""
. SenodeSelector
in un profilo di ottimizzazione corrisponde alle etichette su un nodo del piano di controllo, il nodo non viene ottimizzato e viene impostata una condizione di errore. Per ulteriori informazioni sulle condizioni di errore, consulta la pagina Verifica dello stato. Assicurati che il cluster funzioni correttamente prima di installare l'operatore di ottimizzazione delle prestazioni e di applicare i profili di ottimizzazione.TuneD 2.22.0: l'operatore di ottimizzazione delle prestazioni richiede che la versione 2.22.0 di TuneD sia preinstallata nei nodi worker che intendi ottimizzare. Per ulteriori informazioni su TuneD, incluse le istruzioni di installazione, consulta la guida introduttiva a TuneD nella documentazione di Red Hat Enterprise Linux. L'operatore di ottimizzazione delle prestazioni utilizza TuneD con il profilo
cpu-partitioning
. Se non hai questo profilo, puoi installarlo con il seguente comando:dnf install -y tuned-profiles-cpu-partitioning
Requisiti delle risorse per il carico di lavoro: per sfruttare al meglio l'ottimizzazione delle prestazioni, devi avere una buona conoscenza dei requisiti di memoria e CPU (richieste e limiti delle risorse) per i carichi di lavoro.
Risorse nodo disponibili:trova le risorse di CPU e memoria per i tuoi nodi. Puoi ottenere informazioni dettagliate su CPU e memoria per il tuo nodo, rispettivamente nei file
/proc/cpuinfo
e/proc/meminfo
. Puoi anche utilizzarekubectl get nodes
per recuperare la quantità di risorse di calcolo e di memoria (status.allocatable
) di un nodo worker disponibili per i pod.Richiede lo svuotamento: come parte del processo di ottimizzazione, l'operatore di ottimizzazione delle prestazioni svuota prima i nodi, quindi applica un profilo di ottimizzazione. Di conseguenza, i nodi potrebbero segnalare lo stato
NotReady
durante l'ottimizzazione delle prestazioni. Ti consigliamo di utilizzare la strategia di aggiornamento in sequenza (spec.updateStrategy.type: rolling
) anziché un aggiornamento batch per ridurre al minimo l'indisponibilità del carico di lavoro.Richiede il riavvio: affinché le modifiche di ottimizzazione del nodo abbiano effetto, l'operatore di ottimizzazione delle prestazioni riavvia il nodo dopo aver applicato il profilo di ottimizzazione.
Installa l'operatore di ottimizzazione delle prestazioni
L'operatore di ottimizzazione delle prestazioni è costituito principalmente da due controller (un deployment e un DaemonSet)
che interagiscono tra loro per ottimizzare i nodi in base alle impostazioni del profilo.
L'operatore di ottimizzazione delle prestazioni non è installato con Google Distributed Cloud per impostazione predefinita. Devi scaricare i manifest degli operatori di ottimizzazione delle prestazioni da Cloud Storage e utilizzare kubectl apply
per creare risorse degli operatori di ottimizzazione delle prestazioni nel cluster.
Per abilitare l'ottimizzazione delle prestazioni con valori predefiniti per il tuo cluster:
Crea una directory
performance-tuning
sulla workstation di amministrazione.Dalla directory
performance-tuning
, scarica il pacchetto più recente dell'operatore di ottimizzazione delle prestazioni dal bucket di rilascio di Cloud Storage:gsutil cp -r gs://anthos-baremetal-release/node-performance-tuning/0.1.0-gke.47 .
I file scaricati includono i manifest per il deployment
performance-tuning-operator
e il DaemonSetnodeconfig-controller-manager
. Sono inclusi anche i manifest per le funzioni correlate, come controllo dell'accesso basato sui ruoli (RBAC) e il controllo di ammissione dinamico.In qualità di utente root, applica tutti i manifest degli operatori di ottimizzazione delle prestazioni in modo ricorsivo al cluster utente (o ibrido):
kubectl apply -f performance-tuning --recursive –-kubeconfig USER_KUBECONFIG
Dopo aver creato ed eseguito il deployment e il DaemonSet, la tua unica interazione è modificare e applicare i manifest
PerformanceTuningProfile
.
Rivedi i requisiti delle risorse per i carichi di lavoro
Prima di poter ottimizzare i nodi, devi comprendere i requisiti delle risorse di calcolo e di memoria dei tuoi carichi di lavoro. Se i nodi worker dispongono di risorse sufficienti, i nodi possono essere ottimizzati per fornire memoria garantita (standard ed enormi pagine) per i carichi di lavoro nella classe qualità del servizio (QoS) garantita.
Kubernetes assegna classi QoS a ciascuno dei tuoi pod in base ai vincoli delle risorse specificati per i container associati. Kubernetes utilizza quindi le classi QoS per determinare come pianificare i pod e i container e allocare risorse ai carichi di lavoro. Per sfruttare appieno l'ottimizzazione dei nodi per i tuoi carichi di lavoro, questi devono avere impostazioni per le richieste o i limiti delle risorse di CPU o memoria.
Per ricevere una classe QoS di garanzia, i pod devono soddisfare i seguenti requisiti:
- Per ogni container nel pod:
- Specifica i valori sia per le richieste di risorse di memoria (
spec.containers[].resources.requests.memory
) sia per i limiti (spec.containers[].resources.limits.memory
). - Il valore dei limiti di memoria deve essere uguale al valore delle richieste di memoria.
- Specifica i valori sia per le richieste di risorse CPU (
spec.containers[].resources.requests.cpu
) sia per i limiti (spec.containers[].resources.limits.cpu
). - Il valore dei limiti della CPU deve essere uguale al valore delle richieste di CPU.
- Specifica i valori sia per le richieste di risorse di memoria (
Il seguente estratto delle specifiche dei pod mostra le impostazioni delle risorse CPU che soddisfano i requisiti delle classi QoS garantite:
spec:
containers:
- name: sample-app
image: images.my-company.example/app:v4
resources:
requests:
memory: "128Mi"
cpu: "2"
limits:
memory: "128Mi"
cpu: "2"
...
Quando recuperi i dettagli del pod con kubectl get pods
, la sezione status
deve includere la classe QoS assegnata, come mostrato nell'esempio seguente:
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: "2023-09-22T21:05:23Z"
generateName: my-deployment-6fdd69987d-
labels:
app: metrics
department: sales
pod-template-hash: 6fdd69987d
name: my-deployment-6fdd69987d-7kv42
namespace: default
...
spec:
containers:
...
status:
conditions:
- lastProbeTime: null
lastTransitionTime: "2023-09-22T21:05:23Z"
status: "True"
type: Initialized
...
qosClass: BestEffort
startTime: "2023-09-22T21:05:23Z"
Per ulteriori informazioni sulle classi QoS, consulta Classi di qualità del servizio dei pod nella documentazione Kubernetes. Per istruzioni su come configurare pod e container in modo che venga assegnata una classe QoS, consulta Configurare la qualità del servizio per i pod
Requisiti CPU
Durante l'ottimizzazione di un nodo, puoi specificare un insieme di core CPU prenotati (spec.cpu.reservedCPUs
) per l'esecuzione di daemon di sistema Kubernetes come kubelet e runtime del container. Lo stesso set di CPU riservate esegue anche daemon del sistema operativo, come sshd
e udev
. I restanti core della CPU vengono allocati come isolati. Le CPU isolate sono destinate ad applicazioni legate alla CPU, che richiedono tempo di CPU dedicato senza interferenze di altre applicazioni o interruzioni della rete o di altri dispositivi.
Per pianificare un pod sulle CPU isolate di un nodo worker:
Configura il pod per una qualità del servizio (QoS) garantita.
I requisiti e i limiti di CPU devono essere specificati in numeri interi. Se specifica risorse della CPU parziali nella specifica del pod, ad esempio
cpu: 0.5
ocpu: 250m
(250 millicore), la pianificazione non è garantita.
Requisiti di memoria
Quando ottimizzi un nodo con l'operatore di ottimizzazione delle prestazioni, puoi creare pagine enormi e associarle ai nodi di accesso alla memoria non uniforme (NUMA) sulla macchina. In base alle impostazioni di pod e nodi, i pod possono essere pianificati con l'affinità dei nodi NUMA.
Crea un profilo di ottimizzazione delle prestazioni
Dopo aver installato l'operatore di ottimizzazione delle prestazioni, interagisci solo con il cluster che esegue i carichi di lavoro. Puoi creare PerformanceTuningProfile
risorse personalizzate direttamente nel cluster utente o nel cluster ibrido, non nel cluster di amministrazione. Ogni risorsa PerformanceTuningProfile
contiene un set di parametri che specifica la configurazione delle prestazioni applicata a un nodo.
Il nodeSelector
nella risorsa determina i nodi a cui viene applicato il profilo di ottimizzazione. Per applicare un profilo a un nodo, devi applicare
l'etichetta della coppia chiave-valore corrispondente sul nodo. Un profilo di ottimizzazione viene applicato ai nodi che hanno tutte le etichette specificate nel campo nodeSelector
.
Puoi creare più risorse PerformanceTuningProfile
in un cluster. Se più di un profilo corrisponde a un determinato nodo, viene impostata una condizione di errore in status
della risorsa personalizzata PerformanceTuningProfile
. Per scoprire di più sulla sezione status
, consulta la sezione Verifica dello stato.
Imposta lo spazio dei nomi per la risorsa personalizzata PerformanceTuningProfile
su
kube-system
.
Per ottimizzare uno o più nodi worker:
Modifica il file manifest di
PerformanceTuningProfile
.Per informazioni su ciascun campo del manifest e su un manifest di esempio, consulta la documentazione di riferimento delle risorse di
PerformanceTuningProfile
.(Facoltativo) Per i nodi worker a cui stai applicando un profilo, aggiungi etichette che corrispondano alla coppia chiave-valore
spec.nodeSelector
.Se non viene specificata alcuna coppia chiave-valore
spec.nodeSelector
nella risorsa personalizzataPerformanceTuningProfile
, il profilo viene applicato a tutti i nodi worker.Applica il manifest al cluster.
kubectl apply -f PROFILE_MANIFEST --kubeconfig KUBECONFIG
Sostituisci quanto segue:
PROFILE_MANIFEST
: il percorso del file manifest per la risorsa personalizzataPerformanceTuningProfile
.KUBECONFIG
: il percorso del file kubeconfig del cluster.
Rimuovere un profilo di ottimizzazione
Per ripristinare lo stato originale non ottimizzato di un nodo:
Elimina la risorsa personalizzata
PerformanceTuningProfile
dal cluster.Aggiorna o rimuovi di nuovo le etichette sul nodo in modo che non venga selezionato dal profilo di ottimizzazione.
Se al nodo sono associati più profili di ottimizzazione, ripeti i passaggi precedenti, se necessario.
Mettere in pausa un profilo di ottimizzazione
Se devi eseguire la manutenzione del cluster, puoi mettere temporaneamente in pausa l'ottimizzazione modificando la risorsa personalizzata PerformanceTuningProfile
. Ti consigliamo di mettere in pausa l'ottimizzazione prima di eseguire operazioni critiche sul cluster, ad esempio un upgrade del cluster.
Un'applicazione del profilo non riuscita è un altro caso in cui potresti mettere in pausa l'ottimizzazione. Se il processo di ottimizzazione non va a buon fine, il controller potrebbe continuare a tentare di ottimizzare il nodo, causando il riavvio continuo del nodo. Se noti che lo stato del nodo passa da Pronto a Non pronto e viceversa, metti in pausa l'ottimizzazione in modo da poter ripristinare lo stato non funzionante.
Per mettere in pausa l'ottimizzazione:
Modifica il manifest della risorsa personalizzata
PerformanceTuningProfile
per impostarespec.paused
sutrue
.Utilizza
kubectl apply
per aggiornare la risorsa.
Quando l'ottimizzazione delle prestazioni è in pausa, il controller operatore di ottimizzazione delle prestazioni arresta tutte le sue operazioni. La messa in pausa evita il rischio che le operazioni del controller dell'operatore di ottimizzazione delle prestazioni entrino in conflitto con qualsiasi operazione del controller Google Distributed Cloud.
Riferimento risorsa PerformanceTuningProfile
Questa sezione descrive tutti i campi della risorsa personalizzata PerformanceTuningProfile
. Questa risorsa viene utilizzata per creare un profilo di ottimizzazione per uno o più nodi del cluster. Tutti i campi della risorsa sono modificabili dopo
la creazione del profilo. I profili devono trovarsi nello spazio dei nomi kube-system
.
Il seguente manifest del profilo di esempio numa
per i nodi con 8 core della CPU
specifica le seguenti allocazioni delle risorse:
4 core della CPU (
0-3
) sono riservati per l'overhead del sistema Kubernetes.4 core della CPU (
4-7
) sono riservati solo per i carichi di lavoro.La memoria dei nodi è suddivisa in pagine da 2 MiB per impostazione predefinita, anziché in pagine standard da 4 Ki.
10 pagine di memoria con dimensioni di 1 GiB vengono riservate per essere utilizzate da NUMA node 0.
5 pagine di memoria di 2 MiB sono riservate all'utilizzo da parte del nodo NUMA 1.
Topology Manager utilizza il criterio "best effort" per la pianificazione dei carichi di lavoro.
apiVersion: anthos.gke.io/v1alpha1
kind: PerformanceTuningProfile
metadata:
name: numa
namespace: kube-system
spec:
cpu:
isolatedCPUs: 4-7
reservedCPUs: 0-3
defaultHugepagesSize: 2M
nodeSelector:
app: database
node-role.kubernetes.io/worker: ""
pages:
- count: 10
numaNode: 0
size: 1G
- count: 5
numaNode: 1
size: 2M
topologyManagerPolicy: best-effort
Puoi recuperare la definizione di risorsa personalizzata PerformanceTuningProfile
correlata
dal gruppo anthos.gke.io
nel tuo cluster. La definizione personalizzata della risorsa viene installata dopo l'aggiunta dell'annotazione della funzionalità di anteprima alla risorsa del cluster autogestito.
Configurazione della CPU
Proprietà | Descrizione |
---|---|
cpu.reservedCPUs |
Obbligatorio. Modificabile. Stringa. Questo campo definisce un set di core della CPU da prenotare per i daemon di sistema Kubernetes, come kubelet, runtime del container e rilevatore di problemi dei nodi. Questi core della CPU vengono utilizzati anche per
daemon di sistema del sistema operativo, come sshd e
udev .
Il campo |
cpu.isolatedCPUs |
Facoltativo. Modificabile. Stringa. Il campo cpu.isolatedCPUs
definisce un insieme di CPU utilizzate esclusivamente per applicazioni
sensibili alle prestazioni. CPU Manager pianifica i container solo sulle CPU non prenotate, in base alle
classi Quality of Service (QoS) di Kubernetes.
Per assicurarti che i carichi di lavoro vengano eseguiti su CPU isolate, configura i pod con la classe QoS garantita e assegna una risorsa CPU al pod o al container.
Per la pianificazione dei pod garantita, devi specificare unità CPU intere, non risorse CPU parziali (cpu: "0.5" ).
apiVersion: v1 kind: Pod ... spec: containers: ... resources: limits: cpu: "1" requests: cpu: "1" ... L'ottimizzazione delle CPU isolate per i carichi di lavoro offre il miglior vantaggio in termini di prestazioni. Questo campo richiede un elenco di numeri di CPU o intervalli di numeri di CPU.
Assicurati che l'elenco di CPU non si sovrapponga all'elenco specificato con
|
cpu.balanceIsolated |
Facoltativo. Modificabile. Valore booleano. Valore predefinito: true . Questo campo specifica se il set di CPU isolate è idoneo o meno per il bilanciamento del carico automatico dei carichi di lavoro tra le CPU. Se imposti questo campo su
false , i carichi di lavoro devono assegnare ogni thread in modo esplicito
a una CPU specifica per distribuire il carico tra le CPU. Con assegnazioni di CPU esplicite, ottieni le prestazioni più prevedibili per i carichi di lavoro garantiti, ma aggiunge più complessità ai tuoi carichi di lavoro. |
cpu.globallyEnableIRQLoadBalancing |
Obbligatorio. Modificabile. Valore booleano. Valore predefinito: true . Questo campo specifica se abilitare o meno il bilanciamento del carico di richiesta di interruzione (IRQ) per il set di CPU isolata. |
Configurazione memoria
Proprietà | Descrizione |
---|---|
defaultHugePageSize |
Facoltativo. Modificabile. Enumerazione: 1G o 2M .
Questo campo definisce la dimensione predefinita della pagina enorme nei parametri di avvio del kernel.
Le grandi pagine vengono allocate al momento dell'avvio, prima che la memoria diventi frammentata.
È importante notare che l'impostazione della dimensione predefinita di largepages su 1G rimuove tutte le 2 milioni di cartelle correlate dal nodo. Una dimensione enorme predefinita di 1 G impedisce di configurare 2 milioni di pagine enormi nel nodo.
|
pages |
Facoltativo. Modificabile. Numero intero. Questo campo specifica il numero di pagine enormi da creare al momento dell'avvio. Questo campo accetta un array di pagine. Controlla la memoria disponibile per i nodi prima di specificare enormi pagine. Non richiedere più pagine di grandi dimensioni del necessario e non riservare tutta la memoria per pagine di dimensioni enormi. Anche i carichi di lavoro hanno bisogno di memoria standard. |
Selezione dei nodi
Proprietà | Descrizione |
---|---|
nodeSelector |
Obbligatorio. Modificabile. Questo campo richiede sempre l'etichetta del nodo worker di Kubernetes, node-role.kubernetes.io/worker:"" , che garantisce che l'ottimizzazione delle prestazioni venga eseguita solo sui nodi worker. Questo campo accetta un'etichetta del nodo facoltativa come coppia chiave-valore. Le etichette delle coppie chiave-valore vengono utilizzate per selezionare nodi worker specifici con etichette corrispondenti. Quando le etichette nodeSelector corrispondono alle etichette su un nodo worker, il profilo delle prestazioni viene applicato a quel nodo. Se non specifichi un'etichetta coppia chiave-valore nel tuo profilo, questa viene applicata a tutti i nodi worker nel cluster.
Ad esempio, il valore ... spec: nodeSelector: app: database node-role.kubernetes.io/worker: "" ... |
Configurazione kubelet
Proprietà | Descrizione |
---|---|
topologyManagerPolicy |
Facoltativo. Modificabile. Enumerazione: none , best-effort ,
restricted o single-numa-node . Valore predefinito: best-effort .
Questo campo specifica il criterio di gestione della topologia Kubernetes utilizzato per allocare le risorse per i carichi di lavoro, in base alla classe di qualità del servizio (QoS) assegnata. Per ulteriori informazioni su come vengono assegnate le classi QoS, consulta Configurare la qualità del servizio per i pod.
|
Operazioni del profilo
Proprietà | Descrizione |
---|---|
paused |
Facoltativo. Modificabile. Valore booleano. Imposta paused su
true per impedire temporaneamente ai controller DaemonSet di
ottimizzare i nodi selezionati. |
updateStrategy |
Facoltativo. Modificabile. Specifica la strategia per applicare le modifiche alla configurazione di ottimizzazione ai nodi selezionati. |
updateStrategy.rollingUpdateMaxUnavailalble |
Facoltativo. Modificabile. Numero intero. Valore predefinito: 1 . Specifica il numero massimo di nodi che possono essere ottimizzati contemporaneamente. Questo campo
si applica solo quando type è impostato su rolling . |
updateStrategy.type |
Facoltativo. Modificabile. Enumerazione: batch o rolling .
Valore predefinito: rolling . Specifica come applicare gli aggiornamenti del profilo ai nodi selezionati. Se vuoi applicare l'aggiornamento a tutti i nodi selezionati contemporaneamente, imposta type su batch . Per impostazione predefinita, gli aggiornamenti vengono implementati in sequenza nei singoli nodi, uno dopo l'altro. |
Verifica lo stato
Dopo aver creato o aggiornato la risorsa personalizzata PerformanceTuningProfile
, un controller ottimizza i nodi selezionati in base alla configurazione fornita
nella risorsa. Per controllare lo stato di PerformanceTuningProfile
, stiamo esponendo
il seguente campo in Status
:
Proprietà | Descrizione |
---|---|
conditions |
La condizione rappresenta le ultime osservazioni disponibili dello stato attuale della risorsa del profilo. |
conditions.lastTransitionTime |
Sempre restituito. Stringa (nel formato data-ora). L'ultima volta che la condizione è passata da uno stato a un altro. Questo timestamp di solito indica quando è cambiata la condizione sottostante. Se quell'ora non è nota, l'ora indica quando è stato modificato il campo API. |
conditions.message |
Facoltativo. Stringa. Un messaggio leggibile che indica i dettagli della transizione. Questo campo potrebbe essere vuoto. |
conditions.observedGeneration |
Facoltativo. Numero intero. Se impostato, questo campo rappresenta il valore metadata.generation
su cui è stata impostata la condizione. Ad esempio, se metadata.generation
è 12 , ma status.condition[x].observedGeneration
è 9 , la condizione è obsoleta per quanto riguarda lo stato
attuale dell'istanza. |
conditions.reason |
Obbligatorio. Stringa. Il motivo dell'ultima transizione della condizione. |
conditions.status |
Obbligatorio. Stato della condizione: True , False o
Unknown . |
conditions.type |
Obbligatorio. "Tipo" indica il tipo di condizione: Stalled o
Reconciling . |
readyNodes |
Il numero di nodi a cui è stato applicato correttamente il profilo di ottimizzazione. |
reconcilingNodes |
Il numero di nodi selezionati (o selezionati in precedenza) in fase di riconciliazione con il profilo di ottimizzazione più recente da parte dell'oggetto DaemonSet nodeconfig-controller-manager . |
selectedNodes |
Il numero di note selezionate. ovvero il numero di nodi che corrispondono al selettore di nodi per questa risorsa personalizzata PerformanceTuningProfile . |