O que é erro Oomkilled?
Oomkilled, para simplificar, é um erro de Kubernetes que ocorre quando um pod ou contêiner usa mais memória do que é atribuído a ele. A OOM significa fora da memória. Matou significa o fim do processo.
Aumentar a distribuição de memória é uma maneira fácil de resolver esta questão recorrente. Essa técnica simples, no entanto, só funciona se a memória for infinitamente abundante e os recursos forem ilimitados. Vamos descobrir mais sobre o erro Oomkilled, suas principais causas, como corrigi -lo e como equilibrar as alocações de memória nas seções a seguir.
Tipos de erro Oomkilled
Em Kubernetes, os erros Oomkilled vêm em duas variações diferentes. Um é Oomkilled: Limit Overcommit e o segundo é Oomkilled: Limite de contêiner alcançado.
Vamos aprender mais sobre esses erros em mais profundidade.
Oomkilled: Limite Overcomit Erro
Quando o agregado do limite do pod excede a memória disponível do nó, pode ocorrer um erro. Portanto, se um nó tiver 6 GB de memória disponível, por exemplo, você poderá obter seis pods onde cada um exige 1 GB de memória. No entanto, você corre o risco de ficar sem memória se mesmo um desses pods for configurado com um limite de, digamos, 1.1 gigabytes. Tudo o que é preciso para Kubernetes começar a assassinar as vagens é que uma cápsula experimente um pico no trânsito ou um vazamento de memória não identificado.
Oomkilled: Limite de contêiner alcançado
Kubernetes encerra um aplicativo com um erro “Limite de contorno contínuo de contorno realizado” e o código de saída 137 se tiver um vazamento de memória ou tentar consumir mais memória do que o limite alocado.
Este é de longe o erro de memória mais elementar que pode acontecer dentro de uma vagem. Quando o limite do contêiner é atingido normalmente, ele afeta apenas um pod, diferentemente do erro de compensação limite, o que tem um impacto na capacidade total de RAM do nó do nó.
Causas comuns de erro Oomkilled
Você pode encontrar as causas típicas deste erro na lista a seguir. Observe que existem inúmeras razões adicionais pelas quais os erros ocorridos ocorrem e que muitos deles são difíceis de identificar e resolver:
Como identificar o erro Oomkilled
O status do pod pode ser verificado para ver se ocorre um erro ocorrido. Então, para saber mais sobre o problema, use a descrição ou obtenha comando. A saída do comando get pods, como visto a seguir, lista qualquer travessia que envolva uma falha Oomkiled.
Execute o comando "Kubectl Get Pods" para encontrar o erro. O status do pod é mostrado como terminando. Veja o seguinte comando e captura de tela:
> kubectl Obtenha pods
O nome da vagem, seu status, quantas vezes ele começou e a idade do pod são obtidas pelo comando "Get Pods". Aqui, você pode ver que, se uma vagem quebrar por causa de um problema ocorrido, Kubernetes torna o erro muito óbvio no status de pod.
Como resolver o erro Oomkilled?
Vamos agora examinar uma solução para o erro Oomkilled.
Primeiro de tudo, reunimos os dados e salvamos o conteúdo do arquivo para uso posterior. Para fazer isso, primeiro executamos o comando "Kubectl descreve o pod". O comando executado está anexado da seguinte forma:
> Kubectl Descreva o pod pod-one/tmp/solving_oomkilled_error.TXT
Agora você deve examinar os eventos do pod para o código de saída 137. Procure a seguinte mensagem (consulte a captura de tela a seguir) na seção de eventos do arquivo de texto do arquivo.
Devido a restrições de memória, o contêiner é encerrado com o código de saída 137.
Existem duas razões mais significativas para o erro Oomkilled. A primeira razão é quando a vagem é encerrada devido ao limite de contêiner e a segunda razão é quando a vagem é encerrada devido à compensação excessiva no nó. Você precisa examinar os eventos da história recente do pod para tentar determinar o que causou o problema.
A seção anterior ajuda a identificar o erro Oomkilled. Depois de terminar com isso, as seguintes considerações são necessárias para se aplicar.
Se o pod for encerrado quando o limite do contêiner for atingido, esses pontos devem ser lembrados:
Se o motivo do término do pod for sobrecomposição nó, você poderá seguir estas diretrizes:
Conclusão
Para resumir, as falhas de pod são causadas por um erro muito simples. Ter um plano de alocação de recursos apropriado para as instalações de Kubernetes é a melhor maneira de lidar com esse problema. Ao analisar cuidadosamente a utilização de recursos do aplicativo e a disponibilidade dos recursos no cluster K8S, os usuários podem definir as limitações de recursos que não influenciam a funcionalidade do programa ou nó.