Зонды не найдены в $PATH

Я переустанавливаю развертывание K3s несколько месяцев назад. Потом заработало отлично, без проблем. Однако, когда я пытаюсь развернуть его сейчас, после внесения некоторых других исправлений я получаю следующую ошибку:

Warning  Unhealthy  32m                   kubelet            Readiness probe errored: rpc error: code = Unknown desc = failed to exec in container: failed to start exec "8078b7c54b9bb1609451ae1c2e832ede0670f264490f6ee34e334673fd025681": OCI runtime exec failed: exec failed: unable to start container process: exec: "grpc_health_probe": executable file not found in $PATH: unknown

Это файл .yaml, который я использую для развертывания.

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: vei-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: server-pod
  template:
    metadata:
      labels:
        app: server-pod
    spec:
      containers:
        - name: server-pod
          image: myname/mydeployment:latest
          env:
          - name: AWS_ACCESS_KEY_ID
            value: $AWS_ACCESS_KEY_ID
          - name: AWS_SECRET_ACCESS_KEY
            value: $AWS_SECRET_ACCESS_KEY
          ports:
            - name: grpc
              containerPort: 50051
          livenessProbe:
            exec:
              command:
                - grpcurl
                - -plaintext
                - localhost:50051
                - ping.Pinger/Ping
          readinessProbe:
            exec:
              command:
                - grpc_health_probe
                - -addr=:50051

Одна и та же ошибка выдается для каждой команды как в тесте живости, так и в тесте готовности. Изменилось ли что-то в отношении зондов в К3 за последние несколько месяцев?

Ваши livenessProbe и readinessProbe полагаются на бинарные файлы exec (grpcurl, grpc_health_probe). Ошибка предполагает, что grpc_health_probe не существует в контейнере. Убедитесь, что оба двоичных файла (по-прежнему) присутствуют в образе (myname/mydeployment:latest), который используется для контейнера.

DazWilkin 07.02.2023 04:31
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
1
78
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
Warning Unhealthy 32m kubelet Readiness probe errored: rpc error: code = Unknown desc = failed to exec in container: failed to start exec "8078b7c54b9bb1609451ae1c2e832ede0670f264490f6ee34e334673fd025681": OCI runtime exec failed: exec failed: unable to start container process: exec: "grpc_health_probe": executable file not found in $PATH: unknown

Эта ошибка может быть вызвана несколькими различными сценариями, описанными ниже:

  1. Возможно, в образе контейнера, который вы используете, отсутствует исполняемый файл grpchealthprobe, или образ неправильно настроен для поиска исполняемого файла в $PATH. Если образ настроен правильно, возможно, kubelet не может получить доступ к образу контейнера.

  2. Как @DazWilkin Похоже, проблема в том, что бинарный файл grpchealthprobe отсутствует в вашем кластере Kubernetes. Похоже, ваше развертывание Kubernetes не работает из-за отсутствия исполняемого файла. Эта ошибка может возникнуть, если файл, необходимый для проверки готовности, отсутствует в контейнере. Чтобы решить эту проблему, вам нужно будет убедиться, что файл присутствует в контейнере. Это можно сделать, добавив файл в образ контейнера или смонтировав файл в контейнер. Вам нужно убедиться, что исполняемый файл «grpchealthprobe» находится в переменной среды $PATH, или указать полный путь к исполняемому файлу в конфигурация зонда готовности. Кроме того, вам может потребоваться убедиться, что права доступа к исполняемому файлу установлены правильно, чтобы его можно было выполнить. Как только файл появится, проверка готовности должна начать работать правильно. вы сможете развернуть развертывание K3s без каких-либо дополнительных проблем.

Для получения дополнительной информации следуйте этому документу.

В моем случае это был первый описанный сценарий. Я не знаю, как на образе стали отсутствовать исполняемые файлы, но переделка Docker Image устранила проблему.

Johnney 07.02.2023 21:53

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