Должен ли я создать API для проверки готовности к работе kubernetes
Я пытаюсь создать RollingUpdate и пытаюсь использовать приведенный ниже код, чтобы увидеть, появился ли pod или нет. Должен ли я создать в своем приложении явный путь API, например /healthz, чтобы kubernetes проверял его и получал 200 статусов назад, или его внутренний URL для kubernetes?
specs:
containers:
- name: liveness
readinessProbe:
httpGet:
path: /healthz
port: 80
2 ответа
Как @ Томас ответил на запрос Http: "Если приложение не предоставляет конечную точку для проверки успешного ответа. Вы можете использовать TCP Probe
kubelet пытается установить TCP-соединение на порту контейнера. Если он может установить соединение, контейнер считается исправным; если не может, то считается нездоровым
например, в вашем случае это будет так
ports:
- containerPort: 80
readinessProbe:
tcpSocket:
port: 80
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 80
initialDelaySeconds: 15
periodSeconds: 20
Вы можете получить дополнительную информацию здесь configure-liveness-готовность-зонды /
Kubernetes сделает запрос к контейнеру на порт 80 и путь /healthz
и ожидает, что код состояния в диапазоне 2xx-3xx будет считаться успешным. Если ваше приложение не обеспечивает сопоставление пути и возвращает 404, kubernetes предполагает, что проверка работоспособности завершается неудачно. В зависимости от вашего приложения вам нужно вручную предоставить API, если это не сделано вашей структурой. (Вы можете проверить с помощью curl или wget путь к другому модулю и проверить результат)