Linuxin sysctls:n käyttäminen Kubernetesissa

Linuxin Sysctls N Kayttaminen Kubernetesissa



Tässä viestissä keskustellaan siitä, mitä Linux sysctl on Kubernetesissa ja kuinka sitä voidaan käyttää Kubernetes-klusterissa. Sysctl on käyttöliittymä Linux-käyttöjärjestelmässä, jonka avulla järjestelmänvalvoja voi muokata ytimen parametreja ajon aikana. Tässä osoitamme, kuinka Linuxin sysctls-tiedostoja käytetään Kubernetes-alustalla. Esittelemme yksinkertaisen esimerkin, joka auttaa sinua ymmärtämään, millaista tulosta voit odottaa toteuttaessasi kubectl-komentoja sysctls-komentojen käyttämiseksi Kubernetesissa.

Mitä sysctls ovat?

Sysctls on käyttöliittymä Linuxissa, jota käytetään säilön nimitilan ytimen parametrien säätämiseen ajon aikana. Nämä parametrit löytyvät virtuaalisesta prosessitiedostosta /proc/sys/ ja ne kattavat erilaisia ​​alijärjestelmiä, kuten virtuaalimuistin, verkkoyhteyden, ytimen jne. Vain nimivälit sysctls voidaan asettaa itsenäisesti podissa ja Kubernetes paljastaa sysctl-asetukset. Solmutason sysctls, jotka eivät ole nimiavaruuksia, on asetettava jollakin muulla sysctl-asetusmenetelmällä, kuten solmun viritysoperaattorilla. Lisäksi vain turvalliset sysctls on oletuksena sallittujen luettelossa, kun taas vaaralliset sysctls on otettava manuaalisesti käyttöön solmussa, jotta ne voivat olla käyttäjän käytettävissä. Ymmärrämme nyt, kuinka Linuxin sysctls-tiedostoja käytetään Kubernetesissa.







Edellytykset

Ennen kuin alat oppia käyttämään Linuxin sysctls-tiedostoja Kubernetesissa, varmista, että järjestelmääsi on asennettu seuraavat työkalut:



    • Kubernetes-versio 1.23 tai mikä tahansa uusin versio
    • Ubuntu 20.04 tai mikä tahansa uusin versio
    • Sysctls pod-tuelle
    • Kubectl-komentorivityökalu
    • Minikube-klusteri

Olettaen, että järjestelmäsi täyttää edellytykset, siirrymme toteutusosaan.



Kuinka käyttää Linuxin sysctls-tiedostoja Kubernetesissa?

Linux-käyttöjärjestelmä on alusta, jonka avulla voit virittää ytimiä verkkopinon sysctls-nuppien avulla. Jotkut sysctl-tiedostoista ovat nimiavaruuksia podille, joilla on omat kokoonpanonsa, kun taas toiset ovat voimassa koko järjestelmässä. Kubernetes on ryhmitellyt sysctls-käyttöliittymän kahteen luokkaan:





    • Nimiavaruus vs. solmutason sysctls
    • Turvalliset vs. vaaralliset sysctls

Nimiavaruus vs solmutason sysctls:

Linux-ytimessä useimmat sysctl-tiedostot ovat nimivälillä, mikä mahdollistaa niiden asettamisen itsenäisesti yhden solmun eri podien välillä. Nimiavaroidut sysctls ovat helposti käytettävissä Kubernetes-kotelossa. Jotkut nimiavaroiduista sysctl:istä ovat seuraavat:



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

Solmutason sysctl:t eivät ole nimiavaroita, ja klusterin järjestelmänvalvojan on asetettava ne manuaalisesti. Klusterin ylläpitäjä joko käyttää demonijoukkoa, jossa on etuoikeutettu säilö, tai voi muokata /etc/sysctls.conf-solmun Linux-jakelua. Solmun viritysoperaattoria voidaan käyttää myös solmutason sysctl:n asettamiseen.

Turvalliset vs. vaaralliset sysctls:

Sysctls-ryhmiä on kaksi: turvallinen ja vaarallinen. Turvalliset sysctl-järjestelmät on sijoitettu oikein nimiavaruuteen ja ne on eristetty kokonaan saman solmun podeista. Turvalliset sysctls ovat oletuksena käytössä, ja niitä voidaan käyttää podissa muokkaamalla pod-määrityksiä. Epäturvalliset sysctl-tiedostot ovat kuitenkin oletuksena pois käytöstä, ja klusterin järjestelmänvalvojan on otettava ne käyttöön manuaalisesti. Turvalliset sysctls eivät vaikuta naapureihinsa, koska ne on sijoitettu oikein. Vaikka vaaralliset sysctls voivat yllättäen vaikuttaa naapureihinsa, kuten ylikuormittaa järjestelmää. Turvallinen sysctl-joukko on seuraava:

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

Tässä on huomioitava seikka, että pelkkä nimiavaruus ei riitä sysctl:n olettamiseksi turvalliseksi.

Nyt kun olemme ymmärtäneet molemmat sysctl-luokat, siirrytään oppimaan käyttämään näitä sysctls-luokkia Kubernetesissa. Täällä opastamme sinua käyttämään sekä turvallisia että vaarallisia sysctls-tiedostoja ja kuinka manuaalisesti ottaa vaaralliset sysctls käyttöön Kubernetesissa.

Vaihe 1: Käynnistä Minikube-klusteri

Kubernetes-alustaa voidaan käyttää joidenkin klustereiden kautta ja käytämme tässä minikube-klusteria. Voit käynnistää minikube-klusterin käyttämällä alla olevaa komentoa:

> aloita minikube


Tämä käynnistää minikube-klusterin, jossa voit suorittaa kubectl-komentoja ja käyttää Linuxin sysctls-komentoja Kubernetes-alustalla. Kun suoritat tämän komennon, saat samanlaisen tulosteen kuin alla:

Vaihe 2: Tarkista sysctl:n parametrit

Sysctls-liittymää käytetään ytimen parametrien muokkaamiseen, jotka löytyvät virtuaalisesta prosessitiedostosta /proc/sys/. Kaikkien parametrien luetteloimiseksi voidaan käyttää alla annettua komentoa:

> sudo sysctl -a


Tämä komento listaa kaikki ytimen parametrit /proc/sys/-virtuaaliprosessitiedostosta. Katso alla olevassa tilannekuvassa oleva esimerkkituloste:

Vaihe 3: Ota Unsafe sysctls käyttöön

Epäturvalliset sysctls on otettava käyttöön manuaalisesti, koska ne on oletuksena poistettu käytöstä. Klusterin järjestelmänvalvoja ottaa manuaalisesti käyttöön vaaralliset sysctls solmukohtaisesti. Podeja, jotka ovat poistaneet vaaralliset sysctls käytöstä, ei voida käynnistää, vaan ne voidaan vain ajoittaa. On joitakin erityisehtoja (kuten ajonaikaisen sovelluksen viritys, korkea suorituskyky jne.), jolloin klusterin järjestelmänvalvoja voi sallia vaaralliset sysctls. Voit ottaa vaaralliset sysctls käyttöön solmukohtaisesti käyttämällä alla annettua kubectl-komentoa:

> kubectl –allowed-unsafe-sysctls \


Tämä on hyvin yksinkertainen ja yksinkertainen tapa ottaa käyttöön vaaralliset sysctls käyttämällä kubectl-komentoa.


Lisäksi vaaralliset sysctls voidaan ottaa käyttöön käyttämällä minikube extra-config -lippua. Tämä voidaan tehdä käyttämällä alla olevaa komentoa:

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


Tämän komennon avulla voit ottaa käyttöön vaaralliset sysctls minikube-klusterin kautta. Se voi kuitenkin ottaa käyttöön vain nimiavaruuden sysctls. Katso alla olevassa tilannekuvassa oleva esimerkkituloste:

Johtopäätös

Tämä artikkeli antoi meille yleiskatsauksen Linuxin sysctls-käyttöliittymästä. Keskustelimme siitä, mitä Linux sysctl on ja miten sitä voidaan käyttää Kubernetes-ympäristössä. Sysctls-ryhmiä on kaksi: on turvallinen ja vaarallinen. Turvallinen sysctls-ryhmä on oletuksena käytössä, kun taas vaarallinen sysctls-ryhmä on oletuksena pois käytöstä. Yksinkertaisen ja helpon esimerkin avulla opimme ottamaan käyttöön vaaralliset sysctls komennolla kubectl ja minikube –extra-config -lipulla.