Бобы Kubernetes прекращены - код выхода 137 - PullRequest
1 голос
/ 14 января 2020

Мне нужно несколько советов по проблеме, с которой я сталкиваюсь с k8s 1.14 и запуском конвейеров gitlab на нем. Многие задания выдают ошибки с кодом завершения 137, и я обнаружил, что это означает, что контейнер внезапно завершается.


Информация о кластере:

Версия Kubernetes: 1.14 Используемое облако: AWS Узел EKS: C5.4xLarge


После копания я нашел журналы ниже:

**kubelet: I0114 03:37:08.639450**  4721 image_gc_manager.go:300] [imageGCManager]: Disk usage on image filesystem is at 95% which is over the high threshold (85%). Trying to free 3022784921 bytes down to the low threshold (80%).

**kubelet: E0114 03:37:08.653132**  4721 kubelet.go:1282] Image garbage collection failed once. Stats initialization may not have completed yet: failed to garbage collect required amount of images. Wanted to free 3022784921 bytes, but freed 0 bytes

**kubelet: W0114 03:37:23.240990**  4721 eviction_manager.go:397] eviction manager: timed out waiting for pods runner-u4zrz1by-project-12123209-concurrent-4zz892_gitlab-managed-apps(d9331870-367e-11ea-b638-0673fa95f662) to be cleaned up

**kubelet: W0114 00:15:51.106881**   4781 eviction_manager.go:333] eviction manager: attempting to reclaim ephemeral-storage

**kubelet: I0114 00:15:51.106907**   4781 container_gc.go:85] attempting to delete unused containers

**kubelet: I0114 00:15:51.116286**   4781 image_gc_manager.go:317] attempting to delete unused images

**kubelet: I0114 00:15:51.130499**   4781 eviction_manager.go:344] eviction manager: must evict pod(s) to reclaim ephemeral-storage 

**kubelet: I0114 00:15:51.130648**   4781 eviction_manager.go:362] eviction manager: pods ranked for eviction:

 1. runner-u4zrz1by-project-10310692-concurrent-1mqrmt_gitlab-managed-apps(d16238f0-3661-11ea-b638-0673fa95f662)
 2. runner-u4zrz1by-project-10310692-concurrent-0hnnlm_gitlab-managed-apps(d1017c51-3661-11ea-b638-0673fa95f662)

 3. runner-u4zrz1by-project-13074486-concurrent-0dlcxb_gitlab-managed-apps(63d78af9-3662-11ea-b638-0673fa95f662)

 4. prometheus-deployment-66885d86f-6j9vt_prometheus(da2788bb-3651-11ea-b638-0673fa95f662)

 5. nginx-ingress-controller-7dcc95dfbf-ld67q_ingress-nginx(6bf8d8e0-35ca-11ea-b638-0673fa95f662)

И затем блоки завершаются, что приводит к коду выхода 137 с.

Может кто-нибудь помочь мне понять причину и возможное решение для преодоления этого?

Спасибо :)

Ответы [ 2 ]

1 голос
/ 16 января 2020

Был в состоянии решить проблему.

Узлы изначально имели объем 20 ГБ ebs и тип экземпляра c5.4xlarge. Я увеличил ebs до 50 и 100G, но это не помогло, поскольку я продолжал видеть следующую ошибку:

"Использование диска в файловой системе образа составляет 95%, что превышает высокий порог (85%) . Попытка освободить 3022784921 байт до нижнего порога (80%). "

Затем я изменил тип экземпляра на c5d.4xlarge, который имел 400 ГБ кэш-памяти и дал 300 ГБ EBS. Это устранило ошибку.

Некоторые задания gitlab были для некоторых java приложений, которые занимали много места в кеше и записывали много журналов.

0 голосов
/ 16 января 2020

Код выхода 137 не обязательно означает OOMKilled. Это указывает на ошибку, поскольку контейнер получил SIGKILL (какое-то прерывание или 'oom-killer' [OUT-OF-MEMORY]) *

Если pod получил OOMKilled, вы увидите строку ниже при описании pod

      State:        Terminated
      Reason:       OOMKilled

Я видел подобную ошибку, но не смог выяснить root причину, для нас Причина упомянута: Error

...