Kako koristiti Linux sysctls u Kubernetesu

Kako Koristiti Linux Sysctls U Kubernetesu



Ovaj post govori o tome što je Linux sysctl u Kubernetesu i kako se može koristiti unutar klastera Kubernetesa. Sysctl je sučelje u operativnom sustavu Linux koje omogućuje administratoru da mijenja parametre kernela tijekom izvođenja. Ovdje ćemo pokazati kako koristiti Linux sysctls u Kubernetes platformi. Pokazat ćemo jednostavan primjer kako bismo vam pomogli razumjeti kakvu vrstu izlaza možete očekivati ​​tijekom implementacije naredbi kubectl za korištenje sysctl-a u Kubernetesu.

Što su sysctls?

Sysctls je sučelje u Linuxu koje se koristi za prilagodbu parametara jezgre tijekom izvođenja za imenski prostor u spremniku. Ovi se parametri mogu pronaći u datoteci virtualnog procesa /proc/sys/ i pokrivaju različite podsustave poput virtualne memorije, umrežavanja, kernela, itd. Samo sysctl-ovi s prostorom imena mogu se postaviti neovisno na podovima, a Kubernetes izlaže sysctl postavke. Sysctl na razini čvora koji nije u prostoru imena treba postaviti drugom metodom sysctl postavljanja kao što je operator podešavanja čvora. Štoviše, samo su sigurni sysctl-i prema zadanim postavkama na popisu dopuštenih, dok se nesigurni sysctl-i moraju ručno omogućiti na čvoru kako bi mogli biti dostupni korisniku. Hajde sada da shvatimo kako koristiti Linux sysctl u Kubernetesu.







Preduvjeti

Prije nego počnete učiti kako koristiti Linux sysctls u Kubernetesu, provjerite imate li sljedeće alate instalirane u svom sustavu:



    • Kubernetes verzija 1.23 ili bilo koja druga najnovija verzija
    • Ubuntu 20.04 ili bilo koja druga najnovija verzija
    • Sysctls za podršku za mahune
    • Alat za naredbeni redak Kubectl
    • Grozd minikube

Pod pretpostavkom da vaš sustav zadovoljava preduvjete, prelazimo na odjeljak za implementaciju.



Kako koristiti Linux sysctls u Kubernetesu?

Linux operativni sustav je platforma koja vam omogućuje podešavanje jezgri putem sysctl gumba u mrežnom stogu. Neki od sysctl-a raspoređeni su u prostoru imena za pod s vlastitom konfiguracijom, dok su drugi važeći za cijeli sustav. Kubernetes je grupirao sysctl sučelje u dvije kategorije:





    • Prostor imena u odnosu na sysctl na razini čvora
    • Siguran protiv nesigurnog sysctl-a

Prostor imena u odnosu na sysctl na razini čvora:

U jezgri Linuxa, većina sysctl-a ima prostor imena što vam omogućuje da ih neovisno postavite između različitih podova na jednom čvoru. Sysctl s prostorom imena lako je dostupan u Kubernetes pod-u. Neki od sysctl-a prostora imena su sljedeći:



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

Sysctl na razini čvora nema prostor imena i administrator klastera ih mora postaviti ručno. Administrator klastera ili koristi skup demona s privilegiranim spremnikom ili može modificirati distribuciju Linuxa /etc/sysctls.conf čvora. Node Tuning Operator se također može koristiti za postavljanje sysctl razine čvora.

Siguran naspram nesigurnog sysctl-a:

Postoje dvije skupine sysctl-a: sigurni i nesigurni. Sigurni sysctl-i pravilno su raspoređeni u imenskom prostoru i potpuno su izolirani unutar podova na istom čvoru. Sigurni sysctl-i omogućeni su prema zadanim postavkama i mogu se koristiti u modulu izmjenom specifikacije modula. Međutim, nesigurni sysctl-i onemogućeni su prema zadanim postavkama i treba ih ručno omogućiti administrator klastera. Sigurni sysctl ne utječu na svoje susjede jer su pravilno raspoređeni u prostoru imena. Dok nesigurni sysctl-ovi mogu neočekivano utjecati na svoje susjede poput preopterećenja sustava. Siguran skup sysctl-a je sljedeći:

    • net.ipv4.ping_group_range
    • net.ipv4.ip_local_port_range
    • kernel.shm_rmid_forced
    • net.ipv4.tcp_syncookies

Ono što ovdje treba primijetiti je da samo postojanje imenskog prostora nije dovoljno da se sysctl smatra sigurnim.

Sada kada smo razumjeli obje kategorije sysctl-a, krenimo dalje da naučimo kako koristiti te sysctl-ove u Kubernetesu. Ovdje ćemo vas uputiti kako koristiti sigurne i nesigurne sysctl-ove i kako ručno omogućiti nesigurne sysctl-ove u Kubernetesu.

Korak # 1: Pokrenite Minikube klaster

Platforma Kubernetes može se koristiti putem nekih klastera, a mi ovdje koristimo minikube klaster. Za pokretanje minikube klastera, možete koristiti naredbu danu u nastavku:

> pokrenite minikube


Ovo će pokrenuti minikube klaster gdje možete pokrenuti kubectl naredbe i koristiti Linux sysctls u Kubernetes platformi. Kada izvršite ovu naredbu, dobit ćete izlaz sličan onom danom u nastavku:

Korak # 2: Provjerite parametre sysctl-a

Sučelje sysctls koristi se za modificiranje parametara jezgre koji se nalaze u datoteci virtualnog procesa /proc/sys/. Za popis svih parametara može se upotrijebiti donja naredba:

> sudo sysctl -a


Ova naredba će ispisati sve parametre kernela iz datoteke /proc/sys/ virtualnog procesa. Pogledajte primjer izlaza dat na snimci u nastavku:

Korak # 3: Omogućite nesigurne sysctls

Nesigurne sysctl-e treba omogućiti ručno jer su onemogućene prema zadanim postavkama. Administrator klastera ručno omogućuje nesigurne sysctl-ove za svaki čvor. Podovi koji su onemogućili nesigurne sysctl-e ne mogu se pokrenuti, već samo rasporediti. Postoje neki specifični uvjeti (poput podešavanja aplikacije u vremenu izvođenja, visoke performanse itd.) kada administrator klastera može dopustiti nesigurne sysctl-ove. Da biste omogućili nesigurne sysctl-ove na bazi čvor po čvor, možete upotrijebiti naredbu kubectl dolje:

> kubectl –allowed-unsafe-sysctls \


Ovo je vrlo osnovni i jednostavan način za omogućavanje nesigurnih sysctl-ova pomoću naredbe kubectl.


Štoviše, nesiguran sysctl može se omogućiti korištenjem minikube extra-config oznake. To se može učiniti pomoću naredbe dane u nastavku:

> minikube start –extra-config=”kubectl.allowed-unsafe-sysctls=kernel.msg * ,net.core.somaxconn”...


Ova naredba vam omogućuje da omogućite nesigurne sysctls putem minikube klastera. Međutim, može omogućiti samo sysctls u prostoru imena. Pogledajte primjer izlaza dat na snimci u nastavku:

Zaključak

Ovaj članak pružio nam je pregled Linux sysctl sučelja. Razgovarali smo o tome što je Linux sysctl i kako se može koristiti u Kubernetes okruženju. Postoje dvije skupine sysctl-a: sigurni i nesigurni. Sigurna grupa sysctls je omogućena prema zadanim postavkama, dok je nesigurna grupa sysctls onemogućena prema zadanim postavkama. Uz pomoć jednostavnog i lakog primjera naučili smo kako omogućiti nesigurne sysctl-ove pomoću naredbe kubectl i zastavice minikube –extra-config.