Как настроить livenessProbe в микропрофиле Eclipse на основе Кубернетеса - PullRequest
0 голосов
/ 11 апреля 2020

Я использую службу отдыха на основе Eclipse Microprofile. Мой сервис предоставляет проверку здоровья. Результат такой проверки работоспособности (которая предоставляет много информации) выглядит, например, следующим образом:

http://localhost:9990/health
HTTP=OK

{
  "status":"UP",
  "checks":[
    {"name":"imixs-workflow",
     "status":"UP",
     "data":
     {
     "engine.version":"5.1.11-SNAPSHOT",
     "model.groups":30,
     "model.versions":20
     }
    }
  ]
}

Служба исправна, если проверка с именем 'imixs-workflow' показывает 'status' ' UP '.

Я уже пытался настроить это с помощью живого зонда следующим образом:

livenessProbe:
  exec:
    command: ["sh", "-c", "curl -s http://localhost:9990/health| grep -q imixs-workflow"]
  initialDelaySeconds: 60

Но это не сработало.

Как мне настроить такой датчик живучести, получая состояние определенного поля c json в результате http?

1 Ответ

1 голос
/ 11 апреля 2020

Ваша команда проверки живучести должна вернуть состояние, отличное от 0, чтобы указать на нездоровое состояние контейнера. См. Настройка живучести, готовности и пробных пусков .

Если возможно, я бы также порекомендовал для лучшей ремонтопригодности и удобочитаемости использовать инструмент под названием jq - command- строка JSON процессор.

С ним ваш зонд должен выглядеть примерно так:

livenessProbe:
  exec:
    command: ["sh", "-c", "curl -s http://localhost:9990/health | jq -e '.checks[] | select(.name == "imixs-workflow") | .status == "UP"']
  initialDelaySeconds: 60

Здесь -e флаг устанавливает состояние выхода равным 1, если последнее выходное значение было ложным.

...