Живой Зонд получает время - PullRequest
0 голосов
/ 29 октября 2018

Я использую Дженкинса и Кубернетеса для выполнения этих действий.

Так как мой loadBalancer нуждается в здоровом модуле, мне пришлось добавить livenessProbe в мой модуль.

Моя конфигурация для модуля:

apiVersion: v1
kind: Pod
metadata:
labels:
  component: ci
spec:
  # Use service account that can deploy to all namespaces
  serviceAccountName: default
  # Use the persisnte volume
  containers:
  - name: gcloud
    image: gcr.io/cloud-builders/gcloud
    command:
    - cat
    tty: true
  - name: kubectl
    image: gcr.io/cloud-builders/kubectl
    command:
    - cat
    tty: true
  - 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

Проблема, которая возникает, заключается в том, что когда я хочу развернуть код (CD поверх Jenkins), он становится понятным

/ TMP / здорова;

команда и время истекло.

Ответ об ошибке выглядит следующим образом:

java.io.IOException: Failed to execute shell script inside container [kubectl] of pod [wobbl-mobile-label-qcd6x-13mtj]. Timed out waiting for the container to become ready!

Когда я набираю kubectl get events Я получаю следующий ответ:

Liveness probe failed: cat: can't open '/tmp/healthy': No such file or directory

Есть какие-нибудь советы, как решить эту проблему?

Я прочитал эту документацию для живости, и я взял оттуда конфиг для нее.

1 Ответ

0 голосов
/ 29 октября 2018

Как видно по ссылке, на которую вы ссылаетесь. Например, чтобы помочь вам понять работу датчика живучести. В приведенном ниже примере из этой ссылки

они намеренно удалили файл / tmp / healthy после

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

то, что он делает, это создает файл / tmp / healthy при создании контейнера. Через 5 секунд включается датчик живучести и проверяет файл / tmp / healthy, в этот момент в контейнере действительно присутствует файл / tmp / healthy. Через 30 секунд он удаляет файл, а тест живучести не может найти файл / tmp / healthy и перезапускает контейнер. Этот процесс будет продолжаться, и датчик живучести не будет проходить проверку состояния каждые 30 секунд.

Если вы только добавите

  • сенсорный / тимп / здоровый

Датчик живучести должен хорошо работать

...