So verwenden Sie Linux -SysCTLs in Kubernetes

So verwenden Sie Linux -SysCTLs in Kubernetes

In diesem Beitrag wird erörtert, was Linux sysctl in Kubernetes ist und wie er in einem Cluster von Kubernetes verwendet werden kann. Das SYSCTL ist eine Schnittstelle im Linux -Betriebssystem, mit der der Administrator die Parameter des Kernels zur Laufzeit ändern kann. Hier werden wir demonstrieren, wie die Linux -SysCTLs in der Kubernetes -Plattform verwendet werden. Wir werden ein einfaches Beispiel demonstrieren, um zu verstehen.

Was sind sysctls?

Das SYSCTLS ist eine Schnittstelle unter Linux, mit der Kernelparameter zur Laufzeit für den Namespace in einem Container angepasst werden können. Diese Parameter finden Sie in der Datei/Proc/Sys/Virtual Process -Datei und behandeln verschiedene Subsysteme wie virtuelles Speicher, Netzwerk, Kernel usw. Nur namens SysCTLs können unabhängig von Pods festgelegt werden, und Kubernetes enthält die SYSCTL -Einstellungen. Die SYSCTLs der Knotenebene, die nicht namensspasiert sind. Darüber hinaus werden standardmäßig nur sichere SYSCTLs aufweichen, während die unsicheren SysCTLs auf dem Knoten manuell aktiviert werden müssen, damit sie dem Benutzer zur Verfügung stehen können. Lassen Sie uns nun verstehen, wie Sie Linux -SysCTLs in Kubernetes verwenden.

Voraussetzungen

Bevor Sie lernen, wie Sie die Linux -SYSCTLs in Kubernetes verwenden, stellen Sie sicher, dass in Ihrem System die folgenden Tools installiert sind:

    • Kubernetes Version 1.23 oder eine andere neueste Version
    • Ubuntu 20.04 oder eine andere neueste Version
    • Sysctls für die podunterstützung
    • Kubectl -Befehlszeilenwerkzeug
    • Minikube Cluster

Unter der Annahme, dass Ihr System den Voraussetzungen erfüllt.

So verwenden Sie die Linux -SysCTLs in Kubernetes?

Linux -Betriebssystem ist eine Plattform, mit der Sie die Kernel über SYSCTLS -Knöpfe im Netzwerkstapel einstellen können. Einige der SYSCTLs werden für einen POD mit einer eigenen Konfiguration namensspasiert, während andere für das gesamte System gültig sind. Kubernetes hat die SYSCTLS -Schnittstelle in zwei Kategorien gruppiert:

    • Namespace vs SYSCTLs auf Knotenebene
    • Sicher gegen unsichere sysctls

Namespace vs SYSCTLS auf Knotenebene:

Im Linux -Kernel werden die meisten SYSCTLs namensspasiert, wodurch Sie sie unabhängig von verschiedenen Pods auf einem Knoten festlegen können. Das namespaierte SYSCTLs sind in einer Kubernetes -Pod leicht zugänglich. Einige der Namespace -SysCTLs sind wie folgt:

    • fs.mqueue.*
    • Kernel .Nachricht*
    • Kernel.shm*
    • Kernel.sem

Das SYSCTLS der Knotenebene wird nicht namensspasiert und der Cluster -Administrator muss sie manuell festlegen. Der Cluster -Administrator verwendet entweder einen Dämonensatz mit einem privilegierten Container oder kann die /etc /sysctls ändern.Linux -Verteilung des Konfusknotens. Der Knoten -Tuning -Operator kann auch verwendet werden, um das SYSCTLS der Knotenpegel festzulegen.

Safe gegen unsichere SysCTLs:

Es gibt zwei Gruppen von sysctls: sicher und unsicher. Die sicheren SYSCTLs werden ordnungsgemäß genannt und sie werden in den Schoten auf demselben Knoten vollständig isoliert. Die sicheren SYSCTLs sind standardmäßig aktiviert und können in einem POD verwendet werden, indem die POD -Spezifikation geändert wird. Die unsicheren SysCTLs sind jedoch standardmäßig deaktiviert und müssen vom Cluster -Administrator manuell aktiviert werden. Die sicheren SysCTLs beeinflussen ihre Nachbarn nicht, da sie ordnungsgemäß benannt werden. Während das unsichere SysCTLs sich unerwartet auf ihre Nachbarn auswirken kann wie das Überladen eines Systems. Der sichere Satz von sysctls lautet wie folgt:

    • Netz.IPv4.ping_group_range
    • Netz.IPv4.ip_local_port_range
    • Kernel.SHM_RMID_FORDCED
    • Netz.IPv4.tcp_syncookies

Der Punkt hier ist zu beachten, dass es nicht ausreicht.

Nachdem wir beide Kategorien von SysCTLs verstanden haben, lassen Sie uns erfahren, wie Sie diese SysCTLs in Kubernetes verwenden können. Hier führen wir Sie dazu, wie Sie sowohl SAFE-.

Schritt 1: Starten Sie den Minikube -Cluster

Die Kubernetes -Plattform kann über einige Cluster verwendet werden, und wir verwenden den Minikube -Cluster hier. Um den Minikube -Cluster zu starten, können Sie den unten angegebenen Befehl verwenden:

> Minikube Start


Dadurch wird der Minikube -Cluster gestartet, in dem Sie die Kubectl -Befehle ausführen und die Linux -SysCTLs in der Kubernetes -Plattform verwenden können. Wenn Sie diesen Befehl ausführen, erhalten Sie eine ähnliche Ausgabe wie unten angegeben:

Schritt 2: Überprüfen Sie die Parameter von sysctls

Die SYSCTLS -Schnittstelle wird verwendet, um die Kernel -Parameter zu ändern, die in der Datei/proc/sys/virtuelle Prozessdatei enthalten sind. Um alle Parameter aufzulisten, kann der unten angegebene Befehl verwendet werden:

> sudo sysctl -a


In diesem Befehl werden alle Kernel -Parameter aus der Datei/proc/sys/virtuelle Prozessdatei aufgeführt. Siehe die Beispielausgabe im folgenden Schnappschuss:

Schritt 3: Aktivieren Sie unsichere SYSCTLs

Das unsichere SYSCTLS muss manuell aktiviert werden, da sie standardmäßig deaktiviert sind. Der Clusteradministrat. Die Schoten, die unsichere SysCTLs deaktiviert haben, können nicht gestartet werden, sondern nur geplant. Es gibt einige spezifische Bedingungen (wie Laufzeitanwendungsstimmen, hohe Leistung usw.) Wenn der Cluster -Administrator das unsichere SysCTLs zulassen kann. So können Sie den unten angegebenen Kubectl-Befehl kubectl verwenden:

> kubectl -allowed-unsicheres Sysctls \


Dies ist eine sehr grundlegende und einfache Möglichkeit, unsichere SysCTLs mithilfe des Befehls kubectl zu ermöglichen.


Darüber hinaus können unsichere SYSCTLs durch die Verwendung der Minikube-Flagge extra-konfiguriert werden. Dies kann mit dem unten angegebenen Befehl erfolgen:

> minikube start -extra -config = ”kubectl.erlaubte-unsicher-syscctls = kernel.MSG*, Netz.Kern.Somaxconn ”…


Mit diesem Befehl können Sie das unsichere SysCTLs über den Minikube -Cluster aktivieren. Es kann jedoch nur das namensspatte SYSCTLs ermöglichen. Siehe die Beispielausgabe im folgenden Schnappschuss:

Abschluss

Dieser Artikel gab uns einen Überblick über die Linux -SysCTLS -Schnittstelle. Wir haben diskutiert, was ein Linux -SysCTL ist und wie es in der Kubernetes -Umgebung verwendet werden kann. Es gibt zwei Gruppen von sysctls: ist sicher und unsicher. Die sichere Gruppe von SYSCTLs ist standardmäßig aktiviert, während die unsichere SYSCTLS -Gruppe standardmäßig deaktiviert ist. Mit Hilfe eines einfachen und einfachen Beispiels haben wir gelernt, wie man das unsicher.