Com utilitzar sysctls Linux a Kubernetes

Com Utilitzar Sysctls Linux A Kubernetes



Aquesta publicació tractarà què és Linux sysctl a Kubernetes i com es pot utilitzar dins d'un clúster de Kubernetes. El sysctl és una interfície del sistema operatiu Linux que permet a l'administrador modificar els paràmetres del nucli en temps d'execució. Aquí, demostrarem com utilitzar els sysctls Linux a la plataforma Kubernetes. Demostrarem un exemple senzill per ajudar-vos a entendre quin tipus de sortida podeu esperar mentre implementeu les ordres kubectl per utilitzar els sysctls a Kubernetes.

Què són els sysctls?

El sysctls és una interfície a Linux que s'utilitza per ajustar els paràmetres del nucli en temps d'execució per a l'espai de noms d'un contenidor. Aquests paràmetres es poden trobar al fitxer de procés virtual /proc/sys/ i cobreixen diversos subsistemes com la memòria virtual, les xarxes, el nucli, etc. Només els sysctls amb espai de nom es poden configurar de manera independent als pods i Kubernetes exposa la configuració del sysctl. Els sysctls a nivell de node que no tenen espai de noms s'han d'establir amb un altre mètode de configuració de sysctls com l'operador de sintonització de nodes. A més, només els sysctls segurs estan a la llista blanca de manera predeterminada, mentre que els sysctls no segurs s'han d'habilitar manualment al node perquè puguin estar disponibles per a l'usuari. Ara, anem a entendre com utilitzar els sysctls Linux a Kubernetes.







Requisits previs

Abans de començar a aprendre a utilitzar els sysctls Linux a Kubernetes, assegureu-vos que teniu instal·lades les eines següents al vostre sistema:



    • Kubernetes versió 1.23 o qualsevol altra darrera versió
    • Ubuntu 20.04 o qualsevol altra versió més recent
    • Sysctls per al suport de pods
    • Eina de línia d'ordres Kubectl
    • Clúster Minikube

Suposant que el vostre sistema compleix les necessitats dels requisits previs, passem a la secció d'implementació.



Com utilitzar els sysctls Linux a Kubernetes?

El sistema operatiu Linux és una plataforma que us permet ajustar els nuclis mitjançant els botons sysctls de la pila de xarxa. Alguns dels sysctls tenen espai de noms per a un pod amb la seva pròpia configuració, mentre que altres són vàlids per a tot el sistema. Kubernetes ha agrupat la interfície sysctls en dues categories:





    • Sysctls amb espai de noms i a nivell de node
    • Sysctls segurs vs insegurs

Sysctls amb espai de noms i a nivell de node:

Al nucli de Linux, la majoria dels sysctls tenen espai de noms, cosa que us permet configurar-los de manera independent entre diversos pods en un node. Els sysctls amb espai de noms són fàcilment accessibles en un pod de Kubernetes. Alguns dels sysctls amb espai de nom són els següents:



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

Els sysctls a nivell de node no tenen espai de noms i l'administrador del clúster els ha de configurar manualment. L'administrador del clúster utilitza un conjunt de dimonis amb un contenidor privilegiat o pot modificar la distribució de Linux del node /etc/sysctls.conf. L'operador de sintonització de nodes també es pot utilitzar per establir els sysctls a nivell de node.

Sistemes segurs vs insegurs:

Hi ha dos grups de sysctls: segur i insegur. Els sysctls segurs tenen un espai de noms adequat i estan completament aïllats dins dels pods del mateix node. Els sysctls segurs estan habilitats per defecte i es poden utilitzar en un pod modificant l'especificació del pod. Tanmateix, els sysctls no segurs estan desactivats per defecte i l'administrador del clúster els ha d'habilitar manualment. Els sysctls segurs no influeixen en els seus veïns ja que tenen un espai de noms adequat. Tot i que els sysctls insegurs poden afectar inesperadament als seus veïns com sobrecarregar un sistema. El conjunt segur de sysctls és el següent:

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

El punt que cal tenir en compte aquí és que només amb l'espai de noms no n'hi ha prou perquè el sysctl es consideri segur.

Ara que hem entès les dues categories de sysctls, anem a aprendre a utilitzar aquests sysctls a Kubernetes. Aquí, us guiarem sobre com utilitzar els sysctls segurs i no segurs i com activar manualment els sysctls no segurs a Kubernetes.

Pas 1: inicieu el clúster Minikube

La plataforma Kubernetes es pot utilitzar mitjançant alguns clústers i aquí estem utilitzant el clúster minikube. Per iniciar el clúster minikube, podeu utilitzar l'ordre que es mostra a continuació:

> iniciar minikube


Això iniciarà el clúster minikube on podeu executar les ordres kubectl i utilitzar els sysctls Linux a la plataforma Kubernetes. Quan executeu aquesta ordre, obtindreu una sortida similar a la que es mostra a continuació:

Pas 2: comproveu els paràmetres de sysctls

La interfície sysctls s'utilitza per modificar els paràmetres del nucli que es troben al fitxer de procés virtual /proc/sys/. Per llistar tots els paràmetres, es pot utilitzar l'ordre que es mostra a continuació:

> sudo sysctl -a


Aquesta ordre enumerarà tots els paràmetres del nucli del fitxer de procés virtual /proc/sys/. Vegeu la sortida de mostra que es mostra a la instantània següent:

Pas 3: habiliteu els sistemes no segurs

Els sysctls no segurs s'han d'habilitar manualment perquè estan desactivats per defecte. L'administrador del clúster activa manualment els sysctls no segurs per node. Els pods que han desactivat sysctls no segurs no es poden llançar, sinó només programar-se. Hi ha algunes condicions específiques (com ara l'ajustament de l'aplicació en temps d'execució, alt rendiment, etc.) quan l'administrador del clúster pot permetre els sysctls no segurs. Per habilitar els sysctls no segurs node per node, podeu utilitzar l'ordre kubectl que es mostra a continuació:

> kubectl –allowed-unsafe-sysctls\


Aquesta és una manera molt bàsica i senzilla d'habilitar sysctls no segurs mitjançant l'ordre kubectl.


A més, els sysctls no segurs es poden activar utilitzant la marca extra-config de minikube. Això es pot fer mitjançant l'ordre que es mostra a continuació:

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


Aquesta ordre us permet habilitar els sysctls no segurs mitjançant el clúster minikube. Tanmateix, només pot habilitar els sysctls amb espai de noms. Vegeu la sortida de mostra que es mostra a la instantània següent:

Conclusió

Aquest article ens va oferir una visió general de la interfície sysctls de Linux. Hem comentat què és un sysctl Linux i com es pot utilitzar a l'entorn Kubernetes. Hi ha dos grups de sysctls: és segur i no segur. El grup segur de sysctls està habilitat per defecte, mentre que el grup de sysctls no segur està desactivat per defecte. Amb l'ajuda d'un exemple senzill i senzill, vam aprendre a habilitar els sysctls no segurs mitjançant l'ordre kubectl i el senyalador minikube –extra-config.