Перейти к содержанию

Установка в кластере Kubernetes

Требования

Установка

  1. Установите Ingress‑контроллер Валарм.

  2. Включите анализ трафика для вашего Ingress.

  3. Протестируйте работу Ingress‑контроллера Валарм.

Шаг 1: Установка Ingress‑контроллера Валарм

Выберите способ установки контроллера:

  • создание нового Ingress‑контроллера;

  • замена существующего Ingress‑контроллера.

Создание нового Ingress‑контроллера

  1. Перейдите в Личный кабинет Валарм → секция Ноды по ссылке:

  2. Создайте WAF‑ноду с типом Облако и скопируйте токен.

    Создание облачной WAF‑ноды

  3. Клонируйте репозиторий Валарм NGINX Ingress:

    git clone https://github.com/wallarm/ingress-chart
    
  4. Установите ingress-контроллер Валарм командой для облака, которое вы используете:

    helm install --set controller.wallarm.enabled=true,controller.wallarm.token=<YOUR_CLOUD_NODE_TOKEN> <INGRESS_CONTROLLER_NAME> ingress-chart/wallarm-ingress -n <KUBERNETES_NAMESPACE>
    
    helm install --set controller.wallarm.enabled=true,controller.wallarm.token=<YOUR_CLOUD_NODE_TOKEN>,controller.wallarm.apiHost=api.wallarm.ru <INGRESS_CONTROLLER_NAME> ingress-chart/wallarm-ingress -n <KUBERNETES_NAMESPACE>
    
    • <YOUR_CLOUD_NODE_TOKEN> — полученное ранее значение токена
    • <INGRESS_CONTROLLER_NAME> — название Ingress‑контроллера Валарм
    • <KUBERNETES_NAMESPACE> — namespace вашего Ingress

Замена существующего Ingress‑контроллера

  1. Перейдите в Личный кабинет Валарм → секция Ноды по ссылке:

  2. Создайте WAF‑ноду с типом Облако и скопируйте токен.

    Создание облачной WAF‑ноды

  3. Клонируйте репозиторий Валарм NGINX Ingress:

    git clone https://github.com/wallarm/ingress-chart
    
  4. Замените существующий Ingress‑контроллер командой для облака, которое вы используете:

    helm upgrade --set controller.wallarm.enabled=true,controller.wallarm.token=<YOUR_CLOUD_NODE_TOKEN> <INGRESS_CONTROLLER_NAME> ingress-chart/wallarm-ingress -n <KUBERNETES_NAMESPACE> --reuse-values
    
    helm upgrade --set controller.wallarm.enabled=true,controller.wallarm.token=<YOUR_CLOUD_NODE_TOKEN>,controller.wallarm.apiHost=api.wallarm.ru <INGRESS_CONTROLLER_NAME> ingress-chart/wallarm-ingress -n <KUBERNETES_NAMESPACE> --reuse-values
    
    • <YOUR_CLOUD_NODE_TOKEN> — полученное ранее значение токена
    • <INGRESS_CONTROLLER_NAME> — название Ingress‑контроллера, который необходимо заменить
    • <KUBERNETES_NAMESPACE> — namespace вашего Ingress

Шаг 2: Включение анализа трафика для вашего Ingress

kubectl annotate ingress YOUR_INGRESS_NAME nginx.ingress.kubernetes.io/wallarm-mode=monitoring
kubectl annotate ingress YOUR_INGRESS_NAME nginx.ingress.kubernetes.io/wallarm-instance=INSTANCE
  • YOUR_INGRESS_NAME — название вашего Ingress;

  • INSTANCE — положительное число, уникальное для каждого из ваших приложений или группы приложений; используется для получения раздельной статистики и отличия атак, направленнных на соответствующие приложения.

Шаг 3: Тестирование работы Ingress‑контроллера Валарм

  1. Получите список pod'ов, передав в INGRESS_CONTROLLER_NAME название Ingress‑контроллера Валарм:

    kubectl get po -l release=INGRESS_CONTROLLER_NAME
    

    Все pod'ы должны быть в состоянии: «STATUS: Running» и «READY: N/N». Например:

    NAME                                                              READY     STATUS    RESTARTS   AGE
    ingress-controller-nginx-ingress-controller-675c68d46d-cfck8      3/3       Running   0          5m
    ingress-controller-nginx-ingress-controller-wallarm-tarantljj8g   8/8       Running   0          5m
    ingress-controller-nginx-ingress-default-backend-584ffc6c7xj5xx   1/1       Running   0          5m
    
  2. Выполните тестовую атаку на адрес вашего Ingress, как описано в документации.

  3. Перейдите в раздел События в Личном кабинете Валарм и проверьте, что атака появилась в списке.

Настройка

После успешной установки и тестирования Ingress‑контроллера Валарм вы можете применить к решению дополнительные настройки, например:

Для получения списка всех настроек и соответствующих инструкций перейдите по ссылке.

Известные ограничения

  • Блокировка по IP‑адресу не поддерживается для WAF‑ноды версии 2.12 и ниже.

  • Не поддерживается работа без сервиса постаналитики.

  • Масштабирование постаналитики (уменьшение) может приводить к частичной потере данных об атаках.