Зонды готовности 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"