Endpoint Health Checker

Содержание

Overview

Endpoint Health Checker — это плагин кластера, предназначенный для мониторинга и управления состоянием здоровья сервисных эндпоинтов. Он автоматически удаляет нездоровые эндпоинты из балансировщиков нагрузки, чтобы трафик направлялся только на здоровые экземпляры, что повышает общую надежность и доступность сервиса.

Key Features

  • Автоматический мониторинг здоровья: Непрерывно отслеживает состояние здоровья сервисных эндпоинтов
  • Интеграция с балансировщиком нагрузки: Автоматически удаляет нездоровые эндпоинты из ротации балансировщика нагрузки
  • Доступность сервиса: Обеспечивает направление трафика только на здоровые и доступные эндпоинты

Installation

Install via Marketplace

  1. Перейдите в Administrator > Marketplace > Cluster Plugins.

  2. Найдите в списке плагинов "Alauda Container Platform Endpoint Health Checker".

  3. Нажмите Install, чтобы открыть страницу конфигурации установки.

  4. Дождитесь, пока статус плагина не изменится на "Ready".

How It Works

Health Check Mechanism

Endpoint Health Checker — это специализированный компонент мониторинга здоровья, который гарантирует, что трафик направляется только на здоровые эндпоинты. Он работает, отслеживая сервисные эндпоинты и автоматически управляя их статусом доступности.

Core Functionality

Endpoint Health Checker работает следующим образом:

  1. Обнаружение сервисов: Определяет сервисы и поды, настроенные для мониторинга здоровья
  2. Мониторинг здоровья подов: Отслеживает состояние readiness и liveness probe подов, поддерживающих сервисные эндпоинты
  3. Активные проверки здоровья: Выполняет активные проверки с использованием настраиваемых критериев:
    • Проверки TCP-соединения: Устанавливает TCP-соединения для проверки доступности порта
    • Валидация HTTP/HTTPS-ответов: Отправляет HTTP-запросы и проверяет коды ответов и содержимое
  4. Управление эндпоинтами: Автоматически удаляет нездоровые эндпоинты из списков сервисных эндпоинтов, чтобы предотвратить маршрутизацию трафика на неработающие экземпляры

Health Check Process

Процесс проверки здоровья включает:

  • Интеграция с probe: Использует результаты readiness и liveness probe Kubernetes как начальные индикаторы здоровья
  • Сетевое подключение: Отправляет TCP или HTTP пакеты на порты целевых эндпоинтов для проверки доступности
  • Валидация ответа: Оценивает статус ответа, время и содержимое для определения состояния эндпоинта
  • Автоматическое переключение: Удаляет недоступные или неработающие эндпоинты из ротации балансировщика нагрузки

Activation Methods

Проверка здоровья может быть активирована двумя способами:

  1. Аннотация на уровне пода (рекомендуется):

    Добавьте аннотацию в шаблон пода в вашем 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
  2. 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:

  1. Перейдите в Administrator > Marketplace > Cluster Plugins.

  2. Найдите установленный плагин "Endpoint Health Checker".

  3. Нажмите меню опций и выберите Uninstall.

  4. Подтвердите удаление при появлении запроса.