Defina os limites de recursos de Kubernetes

Defina os limites de recursos de Kubernetes

Os limites de recursos são uma parte importante da orquestração de contêineres de Kubernetes, pois garantem que os contêineres não consumam muitos recursos ou não respondam devido à exaustão de recursos. Este artigo fornece um guia sobre como definir os limites de recursos do contêiner Kubernetes para maximizar seus benefícios e tirar o máximo proveito de seus aplicativos. Aprenda a configurar e gerenciar os recursos do seu contêiner de maneira rápida e fácil com apenas algumas etapas simples para que você possa ter certeza de que todos os seus serviços estão funcionando sem problemas.

Defina os limites do recurso de contêineres em Kubernetes

Os limites de recursos de contêineres são um elemento essencial de Kubernetes, permitindo que os usuários gerenciem o número de recursos que um contêiner pode consumir. Para evitar a sobrecarga e garantir o desempenho de um aplicativo, isso é particularmente crucial nos contextos de produção. Aqui estão algumas dicas profissionais para definir os limites dos recursos do contêiner:

Comece determinando os recursos que seus contêineres precisam. Analise o uso do seu sistema e determine quais contêineres devem ter seus limites de memória e CPU ajustados. Também é importante considerar os nós subjacentes ao definir os limites de recursos - se você definir um limite muito alto ou muito baixo, o nó pode não ser capaz de executar os outros aplicativos sem travar. Em seguida, decida que tipo de limite você deseja usar - estourado ou não -burstável. Agora, vamos ver as etapas necessárias que você pode seguir para definir os limites dos recursos de contêiner Kubernetes. Antes de seguir em direção às etapas, existem alguns pré -requisitos necessários:

Pré -requisitos

Antes de passarmos para as etapas, certifique -se de que nosso sistema atenda a todas as necessidades dos pré -requisitos. Certifique -se de ter Ubuntu 20.04 Ou qualquer outra versão mais recente para ter um ambiente Linux/Unix para funcionar, o cluster de Kubernetes, Kubectl CL para usar os comandos Kubectl, comunicação de cluster, gerenciar o ambiente de desenvolvimento e o minikube ou qualquer outro playground do Kubernetes para criar os clusters. Instale essas ferramentas se você ainda não as instalou antes de prosseguir para a próxima seção. Agora, passamos para o guia passo a passo sobre como definir os limites de recursos de contêiner Kubernetes.

Como definir os limites de recursos Kubernetes

Definir os limites do recurso de contêineres Kubernetes é uma parte importante do gerenciamento e manutenção de seus clusters de Kubernetes. Ter um limite adequado de recursos no local garante que cada contêiner funcione de maneira ideal, sem comprometer o desempenho de outros contêineres ou todo o cluster. Isso pode ser feito definindo as solicitações e limites de recursos para CPU, memória, armazenamento efêmero e muito mais. Veja como definir os limites de recurso de contêiner Kubernetes adequadamente.

Etapa 1: comece o minikube

O cluster do Minikube deve estar em um estado ativo para que você possa executar seus aplicativos ou comandos nele. Para garantir que esteja em funcionamento corretamente, use o seguinte comando dado:

> Minikube Start

Etapa 2: Ative o servidor de métricas

Nesta etapa, compartilhamos o comando que permite ativar o servidor de métricas. O comando é dado no seguinte:

> Minikube Addons Atable Metrics-Server

Etapa 3: verifique se o servidor de métricas está ativo ou não

Digite o seguinte comando para verificar se o servidor das métricas está ativo ou não:

> KUBECTL Obtenha apisivos

Como visto na imagem anterior, ela contém uma referência às métricas.K8S.io se a API de métricas de recursos está acessível.

Etapa 4: Crie um espaço para nome

Para manter os recursos, você cria um espaço para nome para este exercício, separado do restante do seu cluster. Agora demonstramos como criar um espaço para nome. O comando que executa é dado o seguinte:

> Kubectl Criar namespace ABC

Etapa 5: Crie um arquivo de configuração

O arquivo de configuração da YAML que usamos para construir uma vagem no contêiner é criado nesta etapa. Aqui está o comando que é usado para conseguir isso:

> nano reqlimit.Yaml

Aqui, você precisa incluir uma solicitação de CPU junto com um limite de CPU. Inclua os recursos: limites para definir um limite de CPU. Nesse caso, um pod com um único recipiente é criado. O contêiner tem um 0.5 Limite de solicitação da CPU e um máximo de 1 CPU. O arquivo de configuração do pod está disponível aqui. Como você pode ver, a seção Args do arquivo de configuração contém os argumentos que o contêiner usa quando inicia. O contêiner é instruído a tentar utilizar as 2 CPUs através do parâmetro -cpus “2”.

Ao criar recursos em Kubernetes, como implantações e pods, é importante especificar o número mínimo de recursos necessários (solicitação) e o número máximo de recursos permitidos (limite) para cada pod ou implantação. Isso impede que qualquer um vagem consuma muitos recursos que podem fazer com que os outros pods ativos sofram com a diminuição do desempenho ou até de falha devido à falta de recursos disponíveis no cluster.

Etapa 6: Crie uma vagem

Agora, mostramos como criar o pod com o seguinte comando:

> Kubectl Create -f Reqlimit.Yaml

A partir da saída anterior, você pode notar que o pod denominado "CPU-Demo" é criado.

Etapa 7: Verifique a vagem

Nesta etapa, verificamos se o pod criado está ativo ou não com o seguinte comando:

> kubectl Obtenha pod cpu-deemo-namespace = abc

Etapa 8: Veja os detalhes do pod

Agora, se você deseja ver as informações detalhadas sobre o pod, aqui está o comando que deve ser executado:

> Kubectl Get POD CPU-Demo -O-Output = YAML-Namespace = ABC

Etapa 9: Exclua a vagem

Aqui, mostraremos como excluir o pod para limpar os recursos. O comando usado para esse fim é o seguinte:

> kubectl exclua pod cpu-Demo-namespace = ABC

Etapa 10: Crie um arquivo de configuração

Nesta etapa, criamos um arquivo de configuração. Este arquivo especifica uma solicitação de CPU que é muito grande para seus nós.

> nano reqlimit2

O arquivo de configuração com um único contêiner pode ser encontrado aqui. O contêiner pede 100 CPUs, o que é mais do que qualquer nó que seu cluster possa fornecer razoavelmente.

Etapa 11: CreaTE A POD

Nesta etapa, criamos o pod com o seguinte comando:

> Kubectl Criar -f reqlimit2.Yaml

Etapa 12: Veja o status do pod

Agora, você pode ver o STatus da vagem com o comando que está anexado aqui:

A saída mostra que o status do pod está pendente.

Etapa 13: veja as informações do pod

Agora, vemos as informações detalhadas sobre o POD, incluindo os eventos com o comando fornecido aqui:

Vá para a seção de eventos e veja se o contêiner está agendado ou não.

Se não puder ser agendado e o motivo é de recursos insuficientes da CPU, você pode excluir o nó. Como excluir um nó é explicado na próxima etapa.

Etapa 14: Exclua o nó

Você pode excluir o nó com o seguinte comando:

> kubectl exclua pod cpu-Demo-2-namespace = ABC

Qual é o impacto dos limites de recursos de contêineres no desempenho?

Com a crescente popularidade da tecnologia de contêineres Kubernetes, é importante entender como os limites de recursos podem afetar o desempenho. Definir os limites de recursos dentro de um contêiner Kubernetes pode ajudá -lo a garantir que seus aplicativos estejam em execução no nível ideal e que eles não estão consumindo muitos recursos do servidor host. Ao limitar os recursos, você pode evitar os processos redundantes desperdiçados, ajudar a prevenir o sistema falha devido à utilização e otimizar o desempenho de seus contêineres.

Para definir esses limites de recursos em um contêiner Kubernetes, você deve utilizar uma ferramenta chamada CGroups (grupos de controle). Os cgroups permitem que os administradores limitem os recursos, como ciclos de CPU ou uso de memória para contêineres individuais. Você também pode definir outros parâmetros, como tamanhos máximos de arquivo ou uso de largura de banda de rede por contêiner.

Conclusão

Definir os limites do recurso de contêineres Kubernetes é uma parte crucial do gerenciamento do seu ambiente de computação em nuvem. Com a configuração adequada, você pode garantir que cada contêiner tenha acesso aos recursos de que precisa, mas não tanto que afete outros contêineres ou sistemas. Isso permite o uso mais eficiente e econômico dos recursos de computação. Além disso, ao limitar quanta memória ou CPU um contêiner pode consumir, você pode impedir que as interrupções ocorram devido a processos fugitivos ou picos inesperados no uso.