Стручки в Azure AKS случайно перезапускаются - PullRequest
0 голосов
/ 22 июня 2019

У нас есть проблема в кластере AKS, работающем под Kubernetes 1.13.5. Симптомы:

  • Стручки перезапускаются случайным образом
  • «Последнее состояние» - «Прекращено», «Причина» - «Ошибка», а «Код выхода» - «137»
  • События pod не показывают ошибок, связанных либо с нехваткой ресурсов, либо с неудачными проверками работоспособности
  • Контейнер Docker показывает «OOMKilled» как «false» для остановленного контейнера
  • В журналах linux нет убитых OOM-модулей.

Проблемы, с которыми они сталкивались, совпадают с описанными в https://github.com/moby/moby/issues/38768. Однако я не могу найти способа определить, не связана ли эта ошибка Docker, запущенной на узлах AKS, с этой ошибкой, потому что AKS, кажется, использует пользовательский сборка Docker, чья версия похожа на 3.0.4, и я не могу найти никакой связи между этими пользовательскими номерами версий и вышестоящими версиями Docker.

Кто-нибудь знает, как сопоставить внутренние номера сборок AKS Docker с выпусками Docker восходящего потока, или, что еще лучше, как кто-то может предотвратить случайное уничтожение модулей?

Обновление

Это все еще не решенная проблема, и я, хотя и хотел бы документировать, как мы отлаживали ее для будущих пользователей AKS.

Это типичное описание контейнера с контейнером, который был уничтожен с кодом выхода 137. Общие факторы: Last State установлен на Terminated, Reason установлен на Error, Exit Code установлен на 137 и нет событий.

Containers:
  octopus:
    Container ID:   docker://3a5707ab02f4c9cbd66db14d1a1b52395d74e2a979093aa35a16be856193c37a
    Image:          index.docker.io/octopusdeploy/linuxoctopus:2019.5.10-hosted.462
    Image ID:       docker-pullable://octopusdeploy/linuxoctopus@sha256:0ea2a0b2943921dc7d8a0e3d7d9402eb63b82de07d6a97cc928cc3f816a69574
    Ports:          10943/TCP, 80/TCP
    Host Ports:     0/TCP, 0/TCP
    State:          Running
      Started:      Mon, 08 Jul 2019 07:51:52 +1000
    Last State:     Terminated
      Reason:       Error
      Exit Code:    137
      Started:      Thu, 04 Jul 2019 21:04:55 +1000
      Finished:     Mon, 08 Jul 2019 07:51:51 +1000
    Ready:          True
    Restart Count:  2
...
Events:          <none>

Отсутствие событий вызвано тем, что TTL, установленный в самом Kubernetes, приводит к истечению срока действия событий. Однако с включенным мониторингом Azure мы видим, что во время перезапуска не было никаких событий, кроме повторного запуска контейнера.

enter image description here

В нашем случае выполнение kubectl logs octopus-i002680-596954c5f5-sbrgs --previous --tail 500 -n i002680 не показывает ошибок приложения до перезапуска.

Запуск docker ps --all --filter 'exited=137' на узле Kubernetes, в котором размещается модуль, показывает контейнер 593f857910ff с кодом выхода 137.

Enable succeeded:
[stdout]
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
20930700810f        7c23e4d2be70        "./install.sh "     14 hours ago        Exited (137) 12 hours ago                       k8s_octopus_octopus-i002525-55f69565f8-s488l_i002525_b08125ab-9e2e-11e9-99be-422b98e8f214_2
593f857910ff        7c23e4d2be70        "./install.sh "     4 days ago          Exited (137) 25 hours ago                       k8s_octopus_octopus-i002680-596954c5f5-sbrgs_i002680_01eb1b4d-9e03-11e9-99be-422b98e8f214_1
d792afb85c6f        7c23e4d2be70        "./install.sh "     4 days ago          Exited (137) 4 days ago                         k8s_octopus_octopus-i002521-76bb77b5fd-twsdx_i002521_035093c5-9e2e-11e9-99be-422b98e8f214_0
0361bc71bf14        7c23e4d2be70        "./install.sh "     4 days ago          Exited (137) 2 days ago                         k8s_octopus_octopus-i002684-769bd954-f89km_i002684_d832682d-9e03-11e9-99be-422b98e8f214_0


[stderr]

Запуск docker inspect 593f857910ff | jq .[0] | jq .State показывает, что контейнер не был OOMKilled.

Enable succeeded:
[stdout]
{
  "Status": "exited",
  "Running": false,
  "Paused": false,
  "Restarting": false,
  "OOMKilled": false,
  "Dead": false,
  "Pid": 0,
  "ExitCode": 137,
  "Error": "",
  "StartedAt": "2019-07-04T11:04:55.037288884Z",
  "FinishedAt": "2019-07-07T21:51:51.080928603Z"
}


[stderr]

1 Ответ

1 голос
/ 20 июля 2019

Эта проблема, похоже, была решена путем обновления до AKS 1.13.7, которое включает в себя обновление до Moby 3.0.6. Со времени обновления, произошедшего несколько дней назад, мы не видели уничтоженных контейнеров, как описано в сообщении об ошибке Docker в https://github.com/moby/moby/issues/38768.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...