Зонды Kubernetes Liveness и готовности вызывают журналы ошибок http: ошибка рукопожатия TLS из 10.234.0.1:49330: EOF
Я настраиваю зонды готовности и живучести для моего развертывания kuberenetes.
Вот как я это добавил:
ports:
- name: http
containerPort: {{ .Values.service.internalPort }}
protocol: TCP
livenessProbe:
tcpSocket:
port: http
readinessProbe:
tcpSocket:
port: http
Но это вызывает журналы ошибок в модуле:
2021/03/24 03:23:06 http: TLS handshake error from 10.244.0.1:48476: EOF
Если я удалю зонды и создам развертывание, эти журналы не появятся.
У меня есть такая настройка входа, что все HTTP-запросы к этому контейнеру как https. Потому что мой контейнер ожидает к нему только https-запросы.
Я думал, что эти журналы ошибок показаны, потому что зонды tcp не отправляют здесь https-запросы.
Есть ли другой способ настроить зонды без этих журналов ошибок?
1 ответ
если вы хотите отправить HTTPS-запрос службе, вам необходимо изменить
scheme
.
livenessProbe:
httpGet:
path: /
port: 443
scheme: HTTPS
readinessProbe:
httpGet:
path: /
port: 443
scheme: HTTPS
вы можете проверить больше на: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#http-probes
Схема: Схема, используемая для подключения к хосту (HTTP или HTTPS). По умолчанию HTTP.
если установлен HTTPS, kubelet будет отправлять HTTPS-запрос, иначе по умолчанию это будет HTTP.
если запрос, в случае сбоя вы увидите журналы, например: 400 неверный запрос
10.165.18.52 - - [24/March/2021:17:06:40 +0000] "GET / HTTP/1.1" 400 271 "-" "kube-probe/1.16"
для успешного запроса это будет 200 запросов
10.165.18.52 - - [24/March/2021:18:10:06 +0000] "GET / HTTP/1.1" 200 "-" "kube-probe/1.16"