Como usar sysctls Linux em Kubernetes

Como usar sysctls Linux em Kubernetes

Este post discutirá o que é o Sysctl Linux em Kubernetes e como ele pode ser usado dentro de um cluster de Kubernetes. O SYSCTL é uma interface no sistema operacional Linux que permite ao administrador modificar os parâmetros do kernel em tempo de execução. Aqui, demonstraremos como usar os sysctls Linux na plataforma Kubernetes. Demonstraremos um exemplo simples para ajudá -lo a entender que tipo de saída você pode esperar ao implementar os comandos Kubectl para usar os sysctls em Kubernetes.

O que são sysctls?

O SYSCTLS é uma interface no Linux que é usada para ajustar os parâmetros do kernel em tempo de execução para o espaço para nome em um contêiner. Esses parâmetros podem ser encontrados no arquivo de processo/proc/sys/virtual e abrangem vários subsistemas, como memória virtual, networking, kernel, etc. Somente sysctls de namespaced podem ser definidos independentemente em pods e kubernetes expõe as configurações de sysctl. Os sysctls do nível do nó que não são nomes precisam ser definidos com outro método de configuração de sysctls como o operador de ajuste do nó. Além disso, apenas os sysctls seguros estão em permissões por padrão, enquanto os sysctls inseguros precisam ser ativados manualmente no nó para que possam estar disponíveis para o usuário. Agora, vamos entender como usar o Linux Sysctls em Kubernetes.

Pré -requisitos

Antes de começar a aprender a usar os sysctls do Linux em Kubernetes, verifique se você possui as seguintes ferramentas instaladas em seu sistema:

    • Kubernetes versão 1.23 ou qualquer outra versão mais recente
    • Ubuntu 20.04 ou qualquer outra versão mais recente
    • Sysctls para suporte de pod
    • Ferramenta de linha de comando kubectl
    • Cluster Minikube

Supondo que seu sistema esteja atendendo às necessidades de pré -requisito, estamos mudando para a seção de implementação.

Como usar os sysctls Linux em Kubernetes?

Linux Operating System é uma plataforma que permite ajustar os kernels via botões Sysctls na pilha de rede. Alguns dos sysctls são nomes para uma vagem com sua própria configuração, enquanto outros são válidos para todo o sistema. Kubernetes agrupou a interface SYSCTLS em duas categorias:

    • Namespaced Vs Sysctls no nível de nó
    • Sysctls seguros vs inseguros

Namespaced Vs Sysctls no nível de nó:

No kernel Linux, a maioria dos sysctls é acionada, o que permite que você os defina independentemente entre vários pods em um nó. Os sysctls do espaço para o nome são facilmente acessíveis em uma cápsula de Kubernetes. Alguns dos sysctls do nome do nome são os seguintes:

    • fs.Mada.*
    • núcleo .msg*
    • núcleo.shm*
    • núcleo.SEM

Os sysctls do nível do nó não são nomes e o administrador do cluster precisa defini -los manualmente. O administrador do cluster usa um conjunto de demônios com um contêiner privilegiado ou pode modificar o /etc /sysctls.Distribuição Linux do Conf Node. O operador de ajuste do nó também pode ser usado para definir os sysctls do nível do nó.

Sysctls seguros vs inseguros:

Existem dois grupos de sysctls: seguro e inseguro. Os sysctls seguros são adequadamente nomes e são totalmente isolados dentro das vagens no mesmo nó. Os sysctls seguros são ativados por padrão e podem ser usados ​​em um pod modificando a especificação de pod. No entanto, os sysctls inseguros são desativados por padrão e precisam ser ativados manualmente pelo administrador do cluster. Os sysctls seguros não influenciam seus vizinhos, pois são adequadamente o nome do nome. Enquanto os sysctls inseguros podem afetar inesperadamente seus vizinhos, como sobrecarregar um sistema. O conjunto seguro de sysctls é o seguinte:

    • líquido.IPv4.ping_group_range
    • líquido.IPv4.IP_LOCAL_PORT_RANGE
    • núcleo.shm_rmid_forced
    • líquido.IPv4.TCP_SYNCOOKIES

O ponto aqui a ser observado é que apenas ser o nome do nome sozinho não é suficiente para que o sysctl seja assumido em segurança.

Agora que entendemos as duas categorias de sysctls, vamos aprender a aprender a usar esses sysctls em Kubernetes. Aqui, vamos guiá -lo sobre como usar sysctls seguros e inseguros e como ativar manualmente sysctls inseguros em Kubernetes.

Etapa 1: Inicie o cluster Minikube

A plataforma Kubernetes pode ser usada através de alguns clusters e estamos usando o cluster Minikube aqui. Para iniciar o cluster Minikube, você pode usar o comando abaixo:

> Minikube Start


Isso iniciará o cluster Minikube, onde você pode executar os comandos Kubectl e usar os sysctls Linux na plataforma Kubernetes. Quando você executa este comando, você obterá uma saída semelhante à da abaixo:

Etapa 2: verifique os parâmetros de sysctls

A interface SYSCTLS é usada para modificar os parâmetros do kernel que são encontrados no arquivo de processo/proc/sys/virtual. Para listar todos os parâmetros, o comando fornecido abaixo pode ser usado:

> sudo sysctl -a


Este comando listará todos os parâmetros do kernel do arquivo de processo/proc/sys/virtual. Veja a saída de amostra fornecida no instantâneo abaixo:

Etapa 3: Ativar sysctls inseguros

Os sysctls inseguros precisam ser ativados manualmente porque são desativados por padrão. O administrador do cluster permite manualmente os sysctls inseguros por nó. As vagens que desabilitaram sysctls inseguras não podem ser lançadas, mas apenas agendadas. Existem algumas condições específicas (como ajuste de aplicação de tempo de execução, alto desempenho, etc.) quando o administrador do cluster pode permitir os sysctls inseguros. Para ativar os sysctls inseguros em nó por nó, você pode usar o comando kubectl abaixo:

> kubectl -lowed-unsafe-sysctls \


Esta é uma maneira muito básica e simples de ativar sysctls inseguros usando o comando kubectl.


Além disso, sysctls inseguros podem ser ativados usando a bandeira Minikube Extra-Config. Isso pode ser feito usando o comando dado abaixo:

> Minikube Iniciar -Extra -Config = ”Kubectl.permitido-insafe-sysctls = kernel.msg*, rede.essencial.Somaxconn ”…


Este comando permite que você habilite os sysctls inseguros por meio do cluster Minikube. No entanto, ele só pode ativar os sysctls do espaço para o nome. Veja a saída de amostra fornecida no instantâneo abaixo:

Conclusão

Este artigo nos forneceu uma visão geral da interface Sysctls Linux. Discutimos o que é um sysctl Linux e como ele pode ser usado no ambiente Kubernetes. Existem dois grupos de sysctls: é seguro e inseguro. O grupo seguro de sysctls é ativado por padrão, enquanto o grupo SYSCTLS inseguro está desativado por padrão. Com a ajuda de um exemplo simples e fácil, aprendemos a permitir os sysctls inseguros usando o comando kubectl e o minikube -extra -config sinalizador.