Cómo usar SYSCTL de Linux en Kubernetes

Cómo usar SYSCTL de Linux en Kubernetes

Esta publicación discutirá qué es Linux SYSCTL en Kubernetes y cómo se puede usar dentro de un clúster de Kubernetes. SYSCTL es una interfaz en el sistema operativo Linux que permite al administrador modificar los parámetros del núcleo en tiempo de ejecución. Aquí, demostraremos cómo usar los sysctls de Linux en la plataforma Kubernetes. Demostraremos un ejemplo simple para ayudarlo a comprender qué tipo de resultado puede esperar al implementar los comandos Kubectl para usar los SYSCTL en Kubernetes.

¿Qué son los sysctls??

El SYSCTLS es una interfaz en Linux que se utiliza para ajustar los parámetros del núcleo en tiempo de ejecución para el espacio de nombres en un contenedor. Estos parámetros se pueden encontrar en el archivo de proceso/proc/sys/virtual y cubren varios subsistemas como memoria virtual, redes, kernel, etc. Solo los SYSCTL con conjunto de nombres se pueden establecer de forma independiente en pods y kubernetes exponen las configuraciones de SYSCTL. Los SYSCTL de nivel de nodo que no tienen nombres deben establecerse con otro método de configuración SYSCTL como operador de sintonización de nodos. Además, solo los SYSCTL seguros se basan en la lista predeterminada, mientras que los SYSCTL inseguros deben estar habilitados manualmente en el nodo para que puedan estar disponibles para el usuario. Ahora, comprendamos cómo usar Sysctls de Linux en Kubernetes.

Requisitos previos

Antes de comenzar a aprender a usar los SYSCTL de Linux en Kubernetes, asegúrese de tener las siguientes herramientas instaladas en su sistema:

    • Kubernetes versión 1.23 o cualquier otra última versión
    • Ubuntu 20.04 o cualquier otra última versión
    • SYSCTLS para soporte de POD
    • Herramienta de línea de comandos kubectl
    • Clúster de minikube

Suponiendo que su sistema satisfaga las necesidades de requisitos previos, nos estamos moviendo a la sección de implementación.

Cómo usar los sysctls de Linux en Kubernetes?

El sistema operativo Linux es una plataforma que le permite sintonizar los núcleos a través de las perillas SYSCTLS en la pila de redes. Algunos de los SYSCTL están afectados por un pod para una cápsula con su propia configuración, mientras que otros son válidos para todo el sistema. Kubernetes ha agrupado la interfaz SYSCTLS en dos categorías:

    • SYSCTLS de nivel de nombres versus de nombres
    • Safe vs sysctls inseguros

SYSCTL de nivel de nombres VS:

En el núcleo de Linux, la mayoría de los sysctls tienen nombres, lo que le permite establecerlos de forma independiente entre varios vainas en un nodo. Los SYSCTL con espacio para nombres son fácilmente accesibles en una cápsula de Kubernetes. Algunos de los sysctls con espacio de nombres son los siguientes:

    • FS.mecha.*
    • núcleo .msg
    • núcleo.shm*
    • núcleo.sem

Los SYSCTL de nivel de nodo no tienen nombres y el administrador del clúster necesita establecerlos manualmente. El administrador del clúster usa un conjunto de demonios con un contenedor privilegiado o puede modificar el /etc /sysctls.Distribución de Linux de Conf Node. El operador de ajuste de nodo también se puede usar para establecer el nivel de nodo SYSCTLS.

Safe vs inseguros sysctls:

Hay dos grupos de sysctls: seguros e inseguros. Los sysctls seguros están correctamente atacados por nombres y están completamente aislados dentro de las cápsulas en el mismo nodo. Los SYSCTL de SAFE están habilitados de forma predeterminada y se pueden usar en un POD modificando la especificación POD. Sin embargo, los SYSCTL inseguros están deshabilitados de forma predeterminada y el administrador del clúster debe habilitar manualmente. Los sysctls seguros no influyen en sus vecinos, ya que tienen un nombre de nombre adecuado. Mientras que los sysctls inseguros pueden impactar inesperadamente a sus vecinos, como sobrecargar un sistema. El conjunto seguro de SYSCTL es el siguiente:

    • neto.IPv4.ping_group_range
    • neto.IPv4.IP_LOCAL_PORT_RANGE
    • núcleo.shm_rmid_forced
    • neto.IPv4.tcp_syncookies

El punto que se debe tener en cuenta es que solo estar solo con nombres no es suficiente para que el SYSCTL se suponga seguro.

Ahora que hemos entendido las dos categorías de SYSCTLS, pasemos a aprender a usar estos sysctls en Kubernetes. Aquí, lo guiaremos sobre cómo usar sysctls seguros e inseguros y cómo habilitar manualmente SYSCTLS en Kubernetes.

Paso # 1: Comience el clúster de Minikube

La plataforma Kubernetes se puede usar a través de algunos grupos y estamos utilizando el clúster de Minikube aquí. Para iniciar el clúster de minikube, puede usar el comando que se proporciona a continuación:

> Minikube Start


Esto iniciará el clúster de Minikube donde puede ejecutar los comandos Kubectl y usar los sysctls de Linux en la plataforma Kubernetes. Cuando ejecute este comando, obtendrá una salida similar a la que se da a continuación:

Paso # 2: Verifique los parámetros de SYSCTLS

La interfaz SYSCTLS se utiliza para modificar los parámetros del núcleo que se encuentran en el archivo de proceso/proc/sys/virtual. Para enumerar todos los parámetros, se puede utilizar el comando que se indica a continuación:

> sudo sysctl -a


Este comando enumerará todos los parámetros del kernel desde el archivo/sys/virtual Process. Consulte la salida de muestra dada en la instantánea a continuación:

Paso # 3: Habilitar sysctls inseguros

Los sysctls inseguros deben habilitarse manualmente porque están deshabilitados de forma predeterminada. El administrador del clúster habilita manualmente los sysctls inseguros por nodo. Las cápsulas que han deshabilitado no se pueden lanzar SYSCTLS inseguros pero solo programados. Hay algunas condiciones específicas (como ajuste de aplicación en tiempo de ejecución, alto rendimiento, etc.) Cuando el administrador del clúster puede permitir los sysctls inseguros. Para habilitar los sysctls inseguros en base a nodo por nodo, puede usar el comando kubectl que se proporciona a continuación:

> Kubectl -LOWED-UNSAFE-SYSCTLS \


Esta es una forma muy básica y simple de habilitar los sysctls inseguros utilizando el comando kubectl.


Además, los sysctls inseguros se pueden habilitar utilizando la bandera extra-config de minikube. Esto se puede hacer utilizando el comando que se proporciona a continuación:

> Minikube Start -extra -Config = ”Kubectl.permitido-unsafe-sysctls = kernel.Msg*, net.centro.somaxconn "..


Este comando le permite habilitar los sysctls inseguros a través del clúster de minikube. Sin embargo, solo puede habilitar los sysctls con espacio para nombres. Consulte la salida de muestra dada en la instantánea a continuación:

Conclusión

Este artículo nos proporcionó una descripción general de la interfaz Linux SYSCTLS. Discutimos qué es un SYSCTL Linux y cómo se puede usar en el entorno Kubernetes. Hay dos grupos de sysctls: es seguro e inseguro. El grupo seguro de SYSCTLS está habilitado de forma predeterminada, mientras que el grupo SYSCTLS inseguro está deshabilitado por defecto. Con la ayuda de un ejemplo simple y fácil, aprendimos cómo habilitar los sysctls inseguros utilizando el comando kubectl y la bandera minikube -extra -config.