AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1109428
Accepted
Daigo
Daigo
Asked: 2022-08-30 19:06:37 +0800 CST2022-08-30 19:06:37 +0800 CST 2022-08-30 19:06:37 +0800 CST

O pod está preso no status PodInitializing quando um initContainer é OOMKilled

  • 772

Eu tenho o seguinte ambiente local do Kubernetes:

  • SO: Red Hat Enterprise Linux versão 8.6 (Ootpa)
  • Kubernetes: 1.23.7 ​​(nó único, compilado com kubeadm)
  • Driver NVIDIA: 515.65.01
  • nvidia-container-toolkit: 1.10.0-1.x86_64 (rpm)
  • containerd: v1.6.2
  • vcr.io/nvidia/k8s-device-plugin:v0.12.2

E eu executo o seguinte Pod no meu servidor. Apenas app2 (initContainer2) usa GPU.

initContainer1: app1
↓
initContainer2: app2 (Uses GPU)
↓
container1: app3

Quando o app2 usa muita RAM e é eliminado do OOM, o Pod deve estar no OOMKilledstatus, mas está preso no PodInitializingstatus no meu ambiente.

NAMESPACE     NAME       READY   STATUS            RESTARTS       AGE     IP               NODE      NOMINATED NODE   READINESS GATES
default       gpu-pod    0/1     PodInitializing   0              83m     xxx.xxx.xxx.xxx   xxxxx   <none>           <none>

O resultado kubectl describe podé o seguinte:

Init Containers:
  app1:
    ...
    State:          Terminated
      Reason:       Completed
      Exit Code:    0
      Started:      Tue, 30 Aug 2022 10:50:38 +0900
      Finished:     Tue, 30 Aug 2022 10:50:44 +0900
      ...
app2:
    ...
    State:          Terminated
      Reason:       OOMKilled
      Exit Code:    0
      Started:      Tue, 30 Aug 2022 10:50:45 +0900
      Finished:     Tue, 30 Aug 2022 10:50:48 +0900
      ...
app3:
    ...
    State:          Waiting
      Reason:       PodInitializing
      ...
    ...

Esse problema nunca acontecerá quando eu substituir app2 por outro contêiner que não usa GPU ou quando eu iniciar app2 como um único contêiner (não um contêiner init) do Pod. Em ambos os casos, o status será corretamente OOMKilled.

Isso é um inseto? Em caso afirmativo, existem soluções alternativas?

kubernetes
  • 1 1 respostas
  • 191 Views

1 respostas

  • Voted
  1. Best Answer
    asktyagi
    2022-08-30T19:16:56+08:002022-08-30T19:16:56+08:00

    Portanto, o fluxo de trabalho é como abaixo da documentação.

    Os contêineres de inicialização são exatamente como os contêineres normais, exceto:

    • Os contêineres de inicialização sempre são executados até a conclusão.
    • Cada contêiner de inicialização deve ser concluído com êxito antes que o próximo seja iniciado.

    Se o contêiner de inicialização de um pod falhar, o kubelet reiniciará repetidamente esse contêiner de inicialização até que seja bem-sucedido. No entanto, se o pod tiver uma restartPolicy de Never e um contêiner de inicialização falhar durante a inicialização desse pod, o Kubernetes tratará o pod geral como com falha.

    Então está no estado correto AFAIK.

    • 3

relate perguntas

  • Containerd falhou ao iniciar após Nvidia Config

  • Como posso modificar o configmap CoreDNS antes de inicializar o cluster usando o kubeadm?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve