Come utilizzare Linux SysCTLS in Kubernetes

Come utilizzare Linux SysCTLS in Kubernetes

Questo post discuterà di ciò che Linux sysctl è in kubernetes e come può essere utilizzato all'interno di un cluster di kubernetes. Il SYSCTL è un'interfaccia nel sistema operativo Linux che consente all'amministratore di modificare i parametri del kernel in fase di esecuzione. Qui dimostreremo come utilizzare i sysctl Linux nella piattaforma Kubernetes. Dimostreremo un semplice esempio per aiutarti a capire quale tipo di output puoi aspettarti durante l'implementazione dei comandi Kubectl per l'utilizzo di SySCTLS in Kubernetes.

Cosa sono sysctls?

Il SYSCTLS è un'interfaccia in Linux che viene utilizzata per regolare i parametri del kernel in fase di esecuzione per lo spazio dei nomi in un contenitore. Questi parametri possono essere trovati nel file di processo/Proc/sys/virtuale e coprono vari sottosistemi come memoria virtuale, networking, kernel, ecc. Solo i sysctls spaziati possono essere impostati in modo indipendente su pod e kubernetes espone le impostazioni sysctl. Il livello di nodo sysctls che non è spaziata deve essere impostato con altri metodi di impostazione di sysCTLS come l'operatore di sintonizzazione del nodo. Inoltre, solo SYSCTLS sicuri sono bilanciati per impostazione predefinita, mentre i SYSCTL non sicuri devono essere abilitati manualmente sul nodo in modo che possano essere disponibili per l'utente. Ora, facci capire come utilizzare Linux SysCTLS in Kubernetes.

Prerequisiti

Prima di iniziare a imparare a utilizzare i sysctl Linux in Kubernetes, assicurati di avere i seguenti strumenti installati nel sistema:

    • Kubernetes versione 1.23 o qualsiasi altra ultima versione
    • Ubuntu 20.04 o qualsiasi altra ultima versione
    • Sysctls per il supporto del pod
    • Strumento di riga di comando kubectl
    • Cluster Minikube

Supponendo che il tuo sistema stia soddisfacendo le esigenze prerequisiti, stiamo passando alla sezione di implementazione.

Come utilizzare i sysctl Linux in Kubernetes?

Il sistema operativo Linux è una piattaforma che consente di mettere a punto i kernel tramite manopole SySCTLS nello stack di rete. Alcuni dei sysctl sono spaziati per un pod con la propria configurazione mentre altri sono validi per l'intero sistema. Kubernetes ha raggruppato l'interfaccia SYSCTLS in due categorie:

    • Sysctls a livello di nodo
    • Safe vs non sicuri sysctls

Sysctls a livello di nodo

Nel kernel Linux, la maggior parte dei sysctl sono spaziati che consente di impostarli indipendentemente tra vari baccelli su un nodo. I SySCTLS spaziati sono facilmente accessibili in un pod Kubernetes. Alcuni dei sysctl spaziati sono i seguenti:

    • fs.mqueue.*
    • kernel .msg*
    • kernel.shm*
    • kernel.sem

I sysctl a livello di nodo non sono spaziati e l'amministratore del cluster deve impostarli manualmente. L'amministratore del cluster utilizza un set di demoni con un contenitore privilegiato o può modificare /etc /sySCTLS.Distribuzione Linux di Conf Node. L'operatore di sintonizzazione del nodo può anche essere utilizzato per impostare i sysctl a livello di nodo.

SAFE VS SYSCTLS non sicuro:

Esistono due gruppi di sysctls: sicuri e non sicuri. I sysctl sicuri sono adattati correttamente e sono completamente isolati all'interno dei baccelli sullo stesso nodo. I SYSCTL SAFE sono abilitati per impostazione predefinita e possono essere utilizzati in un pod modificando la specifica POD. Tuttavia, i SYSCTL non sicuri sono disabilitati per impostazione predefinita e devono essere abilitati manualmente dall'amministratore del cluster. I sistemi sicuri non influenzano i loro vicini poiché sono adeguatamente spaziati. Mentre i sysctl non sicuri possono influire inaspettatamente ai loro vicini come sovraccaricare un sistema. Il set sicuro di sysctls è il seguente:

    • netto.IPv4.ping_group_range
    • netto.IPv4.IP_LOCAL_PORT_RANGE
    • kernel.shm_rmid_forced
    • netto.IPv4.tcp_syncookies

Il punto qui da notare è che essere solo spacciati nomi da solo non è sufficiente per essere assunto il sysctl.

Ora che abbiamo capito entrambe le categorie di sysctls, andiamo avanti per imparare a usare questi sysctl in kubernetes. Qui, ti guideremo su come utilizzare sysctl sia sicuri che non sicuri e come abilitare manualmente sysctls non sicuri in kubernetes.

Passaggio n. 1: avviare il cluster minikube

La piattaforma Kubernetes può essere utilizzata tramite alcuni cluster e stiamo usando il cluster minikube qui. Per avviare il cluster Minikube, è possibile utilizzare il comando indicato di seguito:

> Minikube Start


Questo avvierà il cluster minikube in cui è possibile eseguire i comandi Kubectl e utilizzare i sysctl Linux nella piattaforma Kubernetes. Quando esegui questo comando, otterrai un output simile a quello indicato di seguito:

Passaggio n. 2: controlla i parametri di SySCTLS

L'interfaccia SYSCTLS viene utilizzata per modificare i parametri del kernel che si trovano nel file di processo/proc/sys/virtuale. Per elencare tutti i parametri, è possibile utilizzare il comando indicato di seguito:

> sudo syscctl -a


Questo comando elencherà tutti i parametri del kernel dal file di processo/proc/sys/virtuale. Vedere l'output del campione indicato nell'istantanea seguente:

Passaggio n. 3: abilita sysctls non sicuri

I SYSCTL non sicuri devono essere abilitati manualmente perché sono disabilitati per impostazione predefinita. L'amministratore del cluster consente manualmente i sysctl non sicuri su base per nodo. I pod che hanno disabilitato sysctls non sicuri non possono essere lanciati ma solo programmati. Esistono alcune condizioni specifiche (come la messa a punto dell'applicazione del tempo di esecuzione, le prestazioni elevate, ecc.) Quando l'amministratore del cluster può consentire i sysctl non sicuri. Per abilitare i sysctl non sicuri su base nodo per nodo, è possibile utilizzare il comando kubectl indicato di seguito:

> kubectl -allowed-unsafe-sysctls \


Questo è un modo molto semplice e semplice per abilitare sysctls non sicuri utilizzando il comando kubectl.


Inoltre, i sysctl non sicuri possono essere abilitati utilizzando il flag extra-config minikube. Questo può essere fatto usando il comando indicato di seguito:

> minikube start -extra -config = "kubectl.consentito-unsafe-sysctls = kernel.msg*, net.nucleo.SomaxConn "..


Questo comando consente di abilitare i sysctl non sicuri tramite il cluster minikube. Tuttavia, può solo abilitare i SySCTLS spaziati. Vedere l'output del campione indicato nell'istantanea seguente:

Conclusione

Questo articolo ci ha fornito una panoramica dell'interfaccia Linux SySCTLS. Abbiamo discusso di cosa sia un sysctl Linux e come può essere utilizzato nell'ambiente Kubernetes. Esistono due gruppi di sysctl: è sicuro e non sicuro. Il gruppo sicuro di SYSCTLS è abilitato per impostazione predefinita, mentre il gruppo SYSCTLS non sicuro è disabilitato per impostazione predefinita. Con l'aiuto di un esempio semplice e semplice, abbiamo imparato come abilitare i sysctl non sicuri usando il comando kubectl e il bandiera minikube -extra -config.