Зонды готовности K8s с HTTPS и сертификатами

У меня есть приложение для весенней загрузки, размещенное на k8s и принудительно использующее mTLS в самом приложении. Я могу выполнить mTLS для подключения, выполнив завершение SSL на уровне Ingress, а затем снова перенаправив сертификаты в модуль Springboot.

Проблема в том, что зонды живучести и готовности в настоящее время не уверены, как отправлять сертификаты в зондах готовности / живучести?

Любая помощь будет оценена.

1 ответ

Из официальной документации по настройке зондов:

Если в поле схемы установлено значение HTTPS, кубелет отправляет HTTPS-запрос, пропуская проверку сертификата.

Вот как будет выглядеть манифест:

apiVersion: v1
kind: Pod
metadata:
  labels:
    run: nginx
  name: alive-n-ready-https
spec:
  containers:
  - name: nginx
    image: viejo/nginx-mockit
    livenessProbe:
      httpGet:
        path: /
        port: 443
        scheme: HTTPS
    readinessProbe:
      httpGet:
        path: /
        port: 443
        scheme: HTTPS

И хотя без схемы, зонды не работают с 400 (неверный запрос), поскольку вы отправляете http-пакет в конечную точку, которая ожидает https:

10.132.15.199 - - [27/May/2020:18:10:36 +0000] "GET / HTTP/1.1" 400 271 "-" "kube-probe/1.17"

С scheme: HTTPS, это получится:

10.132.15.199 - - [27/May/2020:18:26:28 +0000] "GET / HTTP/2.0" 200 370 "-" "kube-probe/1.17"
Другие вопросы по тегам