Команда LivenessProbe для фонового процесса

Что такое подходящий Kubernetes livenessProbe команда для фонового процесса?

У нас есть процесс NodeJS, который потребляет сообщения из очереди SQS. Поскольку это фоновая работа, мы не предоставляем никаких конечных точек HTTP, и поэтому команда liveness кажется более подходящим способом для проверки живучести. Как бы выглядела "достаточно хорошая" настройка команды, которая на самом деле проверяет, что процесс жив и работает правильно? Должен ли процесс NodeJS касаться файла, чтобы обновить время его редактирования, и проверка живучести подтвердит это? Примеры, которые я видел в Интернете, кажутся не связанными с реальным процессом, например, они проверяют, существует ли файл.

1 ответ

Вы можете использовать живость, используя exec команда.

Вот пример:

apiVersion: v1
kind: Pod
metadata:
  labels:
    test: liveness
  name: liveness-exec
spec:
  containers:
  - name: liveness
    image: k8s.gcr.io/busybox
    args:
    - /bin/sh
    - -c
    - touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600
    livenessProbe:
      exec:
        command:
        - cat
        - /tmp/healthy
      initialDelaySeconds: 5
      periodSeconds: 5

Чтобы выполнить зонд, кубелет выполняет команду cat /tmp/ Healthy в целевом контейнере. Если команда выполнена успешно, она возвращает 0, и кубелет считает, что контейнер жив и исправен. Если команда возвращает ненулевое значение, кубелет убивает контейнер и перезапускает его.

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