I limiti delle risorse sono una parte importante dell'orchestrazione del contenitore Kubernetes in quanto assicurano che i contenitori non consumino troppe risorse o che non rispondano a causa dell'esaurimento delle risorse. Questo articolo fornisce una guida su come impostare i limiti delle risorse del contenitore Kubernetes per massimizzare i loro vantaggi e ottenere il massimo dalle tue applicazioni. Scopri come configurare e gestire le risorse del contenitore in modo rapido e semplice con solo pochi semplici passaggi in modo da poter essere sicuro che tutti i tuoi servizi siano in funzione.
Imposta i limiti delle risorse del contenitore in Kubernetes
I limiti delle risorse del contenitore sono un elemento essenziale di Kubernetes, consentendo agli utenti di gestire il numero di risorse che un contenitore può consumare. Per evitare il sovraccarico e garantire una performance dell'applicazione, questo è particolarmente cruciale nei contesti di produzione. Ecco alcuni suggerimenti pro per impostare i limiti delle risorse del contenitore:
Inizia determinando le risorse di cui i tuoi contenitori hanno bisogno. Analizza l'utilizzo del sistema e determina quali contenitori dovrebbero avere la memoria e i limiti della CPU. È anche importante considerare i nodi sottostanti quando si imposta i limiti delle risorse: se si impostano troppo in alto o troppo basso di un limite, il nodo potrebbe non essere in grado di eseguire le altre applicazioni senza schiantare. Successivamente, decidi quale tipo di limite vuoi usare - raffica o non bruttabile. Ora, vediamo i passaggi necessari che puoi seguire per impostare i limiti delle risorse del contenitore Kubernetes. Prima di dirigersi verso i passaggi, ci sono alcuni prerequisiti necessari:
Prerequisiti
Prima di passare ai passaggi, assicuriamoci che il nostro sistema soddisfi tutte le esigenze dei prerequisiti. Assicurati di avere Ubuntu 20.04 o qualsiasi altra ultima versione per avere un ambiente Linux/Unix da funzionare, Kubernetes Cluster, Kubectl CLI per utilizzare i comandi Kubectl, la comunicazione del cluster, gestire l'ambiente di sviluppo e minikube o qualsiasi altro parco giochi Kubernetes per creare i cluster per creare i cluster. Installa questi strumenti se non li hai ancora installati prima di procedere alla sezione successiva. Ora passiamo alla guida passo-passo su come impostare i limiti di risorse del contenitore Kubernetes.
Come impostare i limiti delle risorse Kubernetes
L'impostazione dei limiti delle risorse del contenitore Kubernetes è una parte importante della gestione e della manutenzione dei cluster Kubernetes. Avere un limite di risorse adeguato assicura che ciascun contenitore funzioni in modo ottimale, senza compromettere le prestazioni di altri contenitori o l'intero cluster. Questo può essere fatto impostando le richieste e i limiti delle risorse per CPU, memoria, memoria effimera e altro ancora. Ecco come impostare correttamente i limiti delle risorse del contenitore Kubernetes.
Passaggio 1: avvia il minikube
Il cluster di minikube deve essere in uno stato attivo in modo da poter eseguire le tue applicazioni o comandi in esso. Per assicurarsi che sia attivo e funzionante, utilizzare il seguente comando dato:
> Minikube Start
Passaggio 2: abilita il server delle metriche
In questo passaggio, condividiamo il comando che ti consente di abilitare il server di metriche. Il comando è indicato nel seguente:
> I componenti aggiuntivi minikube abilitano le metriche
Passaggio 3: verificare se il server Metrics è attivo o no
Digitare il seguente comando per verificare se il server metrica è attivo o no:
> kubectl ottieni apiservices
Come visto nell'immagine precedente, contiene un riferimento alle metriche.K8S.IO nel caso in cui l'API di Metrics Resource sia accessibile.
Passaggio 4: crea uno spazio dei nomi
Per mantenere le risorse, si crea uno spazio dei nomi per questo esercizio che è separato dal resto del cluster. Ora dimostriamo come creare uno spazio dei nomi. Il comando che esegue è dato come segue:
> kubectl crea uno spazio dei nomi ABC
Passaggio 5: creare un file di configurazione
Il file di configurazione YAML che utilizziamo per costruire un pod nel contenitore viene creato in questo passaggio. Ecco il comando che viene utilizzato per raggiungere questo obiettivo:
> Nano Reqlimit.Yaml
Qui, devi includere una richiesta CPU insieme a un limite CPU. Includi le risorse: limiti per definire un limite di CPU. In questo caso, viene creato un pod con un singolo contenitore. Il contenitore ha uno 0.5 limite di richiesta della CPU e un massimo di 1 CPU. Il file di configurazione del pod è disponibile qui. Come puoi vedere, la sezione Args del file di configurazione contiene gli argomenti che il contenitore utilizza quando inizia. Il contenitore è chiesto di provare a utilizzare i 2 CPU tramite il parametro -CPUS “2”.
Quando si creano risorse in kubernetes come distribuzioni e pod, è importante specificare il numero minimo di risorse richieste (richiesta) e il numero massimo di risorse consentite (limite) per ciascun pod o distribuzione. Ciò impedisce a qualsiasi pod di consumare troppe risorse che potrebbero far sì che gli altri pod attivi soffrano della riduzione delle prestazioni o addirittura dell'incidente a causa della mancanza di risorse disponibili sul cluster.
Passaggio 6: crea un baccello
Ora ti mostriamo come creare il pod con il seguente comando:
> kubectl crea -f reqlimit.Yaml
Dall'output dato precedente, è possibile notare che è stato creato il pod chiamato "CPU-Demo".
Passaggio 7: verificare il pod
In questo passaggio, controlliamo se il pod creato è attivo o meno con il seguente comando:
> kubectl Get pod cpu-demo --namespace = ABC
Passaggio 8: visualizzare i dettagli del pod
Ora, se si desidera visualizzare le informazioni dettagliate sul pod, ecco il comando che dovrebbe essere eseguito:
> kubectl Get pod cpu-demo --output = yaml --namespace = ABC
Passaggio 9: Elimina il pod
Qui mostreremo come eliminare il pod per ripulire le risorse. Il comando che viene utilizzato a questo scopo è il seguente:
> Kubectl Elimina CPU-DEMO --NAMESPACE = ABC
Passaggio 10: creare un file di configurazione
In questo passaggio, creiamo un file di configurazione. Questo file specifica una richiesta della CPU che è piuttosto grande per i tuoi nodi.
> Nano reqlimit2
Il file di configurazione con un singolo contenitore può essere trovato qui. Il contenitore chiede 100 CPU che è più di qualsiasi nodo che il tuo cluster può ragionevolmente fornire.
Passaggio 11: CreUNte il baccello
In questo passaggio, creiamo il pod con il seguente comando:
> kubectl crea -f reqlimit2.Yaml
Passaggio 12: visualizzare lo stato del pod
Ora puoi vedere la STUNTUS del pod con il comando che è allegato qui:
L'output mostra che lo stato del pod è in sospeso.
Passaggio 13: consultare le informazioni sul pod
Ora, visualizziamo le informazioni dettagliate sul pod, inclusi gli eventi con il comando indicato qui:
Vai alla sezione evento e vedi se il contenitore è programmato o meno.
Se non può essere programmato e il motivo è insufficiente di risorse CPU, è possibile eliminare il nodo. Come eliminare un nodo è spiegato nel prossimo passaggio.
Fare un passo 14: Elimina il nodo
È possibile eliminare il nodo con il seguente comando:
> Kubectl Elimina POD CPU-DEMO-2 --NAMESPACE = ABC
Qual è l'impatto dei limiti delle risorse del contenitore sulle prestazioni?
Con la crescente popolarità della tecnologia dei container Kubernetes, è importante capire come i limiti delle risorse possono influire sulle prestazioni. L'impostazione dei limiti delle risorse all'interno di un contenitore Kubernetes può aiutarti a garantire che le tue applicazioni siano in esecuzione al loro livello ottimale e che non consumano troppe risorse dal server host. Limitando le risorse, è possibile evitare i processi ridondanti sprecati, aiutare a prevenire gli arresti anomali del sistema a causa dell'utilizzo e ottimizzare le prestazioni dei tuoi contenitori.
Per impostare questi limiti di risorse in un contenitore Kubernetes, è necessario utilizzare uno strumento chiamato cgroups (gruppi di controllo). I cgroup consentono agli amministratori di limitare le risorse come i cicli della CPU o l'utilizzo della memoria per i singoli contenitori. È inoltre possibile impostare gli altri parametri come dimensioni massime dei file o utilizzo della larghezza di banda di rete per contenitore.
Conclusione
L'impostazione dei limiti delle risorse del contenitore Kubernetes è una parte cruciale della gestione del tuo ambiente cloud computing. Con la corretta configurazione, è possibile garantire che ciascun contenitore abbia accesso alle risorse di cui ha bisogno, ma non tanto da influire su altri contenitori o sistemi. Ciò consente un uso più efficiente ed economico delle risorse di elaborazione. Inoltre, limitando la quantità di memoria o CPU che un contenitore può consumare, è possibile impedire che si verifichino interruzioni a causa di processi in fuga o picchi inaspettati nell'uso.