Ошибка проверки работоспособности, но конечная точка доступна из разных модулей
Я пытаюсь реализовать простую проверку работоспособности в моем шаблоне развертывания диаграммы управления. Ниже представлена конфигурация моего датчика живучести. Весенний ботинок
/actuator/health
конечная точка используется как конечная точка проверки работоспособности.
containers:
- name: {{ .Release.Name }}-container
image: {{ .Values.container.image }}
ports:
- containerPort: 8080
livenessProbe:
httpGet:
path: /actuator/health
port: 8080
failureThreshold: 5
periodSeconds: 10
initialDelaySeconds: 30
timeoutSeconds: 25
Это ошибка, с которой я сталкиваюсь (попытался добавить большой initialDelay, а также попытался добавить startupProbe. Оба не сработали)
Liveness probe failed: Get http://x.x.x.x:8080/actuator/health: dial tcp x.x.x.x:8080: connect: connection refused
Однако я могу получить 200 ответов от разных модулей через эту конечную точку, которые находятся в одном экземпляре ec2, а также в разных экземплярах ec2.
$k exec -it pod/test sh
# curl http://x.x.x.x:8080/actuator/health -I
HTTP/1.1 200 OK
Connection: keep-alive
Transfer-Encoding: chunked
Content-Type: application/vnd.spring-boot.actuator.v3+json
correlation-id: x-x-x-x-x
Date: Fri, 09 Oct 2020 14:04:56 GMT
Без проверки живучести приложение работает нормально, и я могу получить доступ ко всем конечным точкам через порт 8080.
Пытался настроить livenessprobe для образа nginx, и он отлично работает (что исключает проблемы с сетью)
Containers:
liveness:
Container ID: docker://0af63462845d6a2b44490308147c73277d22aff56f993ca7c065a495ff97fcfa
Image: nginx
Image ID: docker-pullable://nginx@sha256:c628b67d21744fce822d22fdcc0389f6bd763daac23a6b77147d0712ea7102d0
Port: 80/TCP
Host Port: 0/TCP
State: Running
Started: Tue, 29 Sep 2020 15:53:17 +0530
Ready: True
Restart Count: 0
Liveness: http-get http://:80/ delay=2s timeout=1s period=2s #success=1 #failure=3
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-57smz (ro)