Под зависает в состоянии PodInitializing, когда initContainer находится в состоянии OOMKilled.

У меня есть следующая локальная среда Kubernetes:

  • ОС: Red Hat Enterprise Linux версии 8.6 (Ootpa)
  • Kubernetes: 1.23.7 ​​(один узел, сборка с помощью kubeadm)
  • Драйвер NVIDIA: 515.65.01
  • набор инструментов nvidia-container: 1.10.0-1.x86_64 (об/мин)
  • контейнер: v1.6.2
  • vcr.io/nvidia/k8s-device-plugin:v0.12.2

И я запускаю следующий модуль на своем сервере. Только приложение2 (initContainer2) использует графический процессор.

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

Когда приложение2 использует слишком много оперативной памяти и OOM отключается, модуль должен находиться в состоянии, но он зависает вPodInitializingстатус в моей среде.

      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>

Результатkubectl describe podкак следует:

      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
      ...
    ...

Эта проблема никогда не возникнет, если я заменю app2 другим контейнером, который не использует графический процессор, или когда я запущу app2 как отдельный контейнер (а не инициализирующий контейнер) модуля. В обоих случаях статус будет правильным.OOMKilled.

Это ошибка? Если да, есть ли обходные пути?

0 ответов

Другие вопросы по тегам