Кубернетес живость не разрешена - PullRequest
2 голосов
/ 09 февраля 2020

Я пытаюсь определить livenessProbe, передав значение httpheader в качестве секретного. но я получаю несанкционированный 401.

  - name: mycontainer
    image: myimage
    env:
      - name: MY_SECRET
        valueFrom:
          secretKeyRef:
            name: actuatortoken
            key: token
    livenessProbe:
        httpGet:
          path: /test/actuator/health
          port: 9001
          httpHeaders:
          - name: Authorization
            value: $MY_SECRET

Мой секрет в следующем:

apiVersion: v1
kind: Secret
metadata:
  name: actuatortoken
type: Opaque
stringData:
  token: Bearer <token>

Если я передаю то же самое с фактическим значением, как показано ниже ... это работает как ожидалось

  - name: mycontainer
    image: myimage
    livenessProbe:
        httpGet:
          path: /test/actuator/health
          port: 9001
          httpHeaders:
          - name: Authorization
            value: Bearer <token>

Любая помощь высоко ценится.

1 Ответ

0 голосов
/ 17 февраля 2020

То, что у вас есть, поместит буквенную строку $MY_SECRET в качестве заголовка авторизации, который не будет работать.

Вы не хотите указывать фактическое значение секрета в вашем модуле Pod / Deployment / YAML, поскольку вы не хотите, чтобы в нем были учетные данные в виде открытого текста.

3 варианта, которые я могу придумать:

a) изменить приложение, чтобы не требовать аутентификации для конечной точки /test/actuator/health;

b) измените приложение, чтобы не требовать аутентификации, когда запрашиваемый хост - 127.0.0.1, и обновите конфигурацию зонда, чтобы использовать его в качестве хоста;

c) переключиться с проверки HTTP на проверку команды и самостоятельно написать команду curl / wget

Ответ публикуется в вики-сообществе, как и Amit Кумар Гупта комментариев.

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