Endpoint Health Checker
Содержание
Overview
Endpoint Health Checker — это плагин кластера, предназначенный для мониторинга и управления состоянием здоровья сервисных эндпоинтов. Он автоматически удаляет нездоровые эндпоинты из балансировщиков нагрузки, чтобы трафик направлялся только на здоровые экземпляры, что повышает общую надежность и доступность сервиса.
Key Features
- Автоматический мониторинг здоровья: Непрерывно отслеживает состояние здоровья сервисных эндпоинтов
- Интеграция с балансировщиком нагрузки: Автоматически удаляет нездоровые эндпоинты из ротации балансировщика нагрузки
- Доступность сервиса: Обеспечивает направление трафика только на здоровые и доступные эндпоинты
Installation
Install via Marketplace
-
Перейдите в Administrator > Marketplace > Cluster Plugins.
-
Найдите в списке плагинов "Alauda Container Platform Endpoint Health Checker".
-
Нажмите Install, чтобы открыть страницу конфигурации установки.
-
Дождитесь, пока статус плагина не изменится на "Ready".
How It Works
Health Check Mechanism
Endpoint Health Checker — это специализированный компонент мониторинга здоровья, который гарантирует, что трафик направляется только на здоровые эндпоинты. Он работает, отслеживая сервисные эндпоинты и автоматически управляя их статусом доступности.
Core Functionality
Endpoint Health Checker работает следующим образом:
- Обнаружение сервисов: Определяет сервисы и поды, настроенные для мониторинга здоровья
- Мониторинг здоровья подов: Отслеживает состояние readiness и liveness probe подов, поддерживающих сервисные эндпоинты
- Активные проверки здоровья: Выполняет активные проверки с использованием настраиваемых критериев:
- Проверки TCP-соединения: Устанавливает TCP-соединения для проверки доступности порта
- Валидация HTTP/HTTPS-ответов: Отправляет HTTP-запросы и проверяет коды ответов и содержимое
- Управление эндпоинтами: Автоматически удаляет нездоровые эндпоинты из списков сервисных эндпоинтов, чтобы предотвратить маршрутизацию трафика на неработающие экземпляры
Health Check Process
Процесс проверки здоровья включает:
- Интеграция с probe: Использует результаты readiness и liveness probe Kubernetes как начальные индикаторы здоровья
- Сетевое подключение: Отправляет TCP или HTTP пакеты на порты целевых эндпоинтов для проверки доступности
- Валидация ответа: Оценивает статус ответа, время и содержимое для определения состояния эндпоинта
- Автоматическое переключение: Удаляет недоступные или неработающие эндпоинты из ротации балансировщика нагрузки
Activation Methods
Проверка здоровья может быть активирована двумя способами:
-
Аннотация на уровне пода (рекомендуется):
Добавьте аннотацию в шаблон пода в вашем Deployment:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-demo
spec:
replicas: 10
selector:
matchLabels:
app: nginx-demo
template:
metadata:
labels:
app: nginx-demo
annotations:
endpoint-health-checker.io/enabled: "true"
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
livenessProbe:
tcpSocket:
port: 80
initialDelaySeconds: 15
periodSeconds: 10
readinessProbe:
tcpSocket:
port: 80
initialDelaySeconds: 5
periodSeconds: 5
-
readinessGates на уровне пода (устаревший способ):
Настройте readinessGates в спецификации пода для старых версий:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-demo-legacy
spec:
replicas: 5
selector:
matchLabels:
app: nginx-demo-legacy
template:
metadata:
labels:
app: nginx-demo-legacy
spec:
readinessGates:
- conditionType: "endpointHealthCheckSuccess"
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
livenessProbe:
tcpSocket:
port: 80
initialDelaySeconds: 15
periodSeconds: 10
readinessProbe:
tcpSocket:
port: 80
initialDelaySeconds: 5
periodSeconds: 5
Примечание: Конфигурация readinessGates относится к более старой версии. Рекомендуется использовать аннотацию пода endpoint-health-checker.io/enabled: "true"
для новых развертываний.
Uninstallation
Чтобы удалить Endpoint Health Checker:
-
Перейдите в Administrator > Marketplace > Cluster Plugins.
-
Найдите установленный плагин "Endpoint Health Checker".
-
Нажмите меню опций и выберите Uninstall.
-
Подтвердите удаление при появлении запроса.