Ingress — K8s-ресурс, описывающий HTTP(S)-роутинг: какой host/path в какой Service. Требует Ingress Controller (ingress-nginx, Traefik, HAProxy Ingress). Cert-manager автоматически выписывает Let's Encrypt. Аннотации контроллера добавляют rate-limit, CORS, basic-auth без отдельного sidecar.
Ниже: подробности, пример, смежные термины, FAQ.
Бесплатный онлайн-инструмент — сканер безопасности сайта: результат мгновенно, без регистрации.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: api
annotations:
cert-manager.io/cluster-issuer: letsencrypt
nginx.ingress.kubernetes.io/limit-rps: "10"
spec:
ingressClassName: nginx
tls:
- hosts: [api.example.com]
secretName: api-tls
rules:
- host: api.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service: { name: api-svc, port: { number: 80 } }Ingress в Kubernetes позволяет управлять внешним доступом к сервисам в кластере, обеспечивая маршрутизацию и балансировку нагрузки. Для настройки Ingress необходимо создать ресурс Ingress с использованием специального контроллера, такого как NGINX Ingress Controller. Основные шаги включают установку контроллера, создание правил маршрутизации и применение конфигурации через манифесты YAML.
Первым шагом в настройке Ingress является установка NGINX Ingress Controller. Это можно сделать с помощью Helm или манифеста Kubernetes. Рассмотрим оба варианта:
Для установки через Helm, выполните следующие команды:
helm repo add ingress-nginx https://charts.helm.sh/stable
helm repo update
helm install my-nginx ingress-nginx/ingress-nginxПосле выполнения этих команд Ingress Controller будет установлен в ваш кластер Kubernetes. Вы можете проверить его статус с помощью:
kubectl get pods -n ingress-nginxЕсли вы предпочитаете установить Ingress Controller вручную, используйте следующий манифест:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-ingress-controller
namespace: ingress-nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx-ingress-controller
template:
metadata:
labels:
app: nginx-ingress-controller
spec:
containers:
- name: nginx-ingress-controller
image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:latest
ports:
- containerPort: 80
- containerPort: 443После создания манифеста, примените его командой:
kubectl apply -f nginx-ingress-controller.yamlТеперь Ingress Controller работает, и вы можете настроить маршруты для вашего приложения.
После установки Ingress Controller необходимо создать правила маршрутизации, которые определят, как трафик будет направляться к вашим сервисам. Для этого создайте ресурс Ingress с необходимыми аннотациями и правилами. Рассмотрим пример:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: myapp.example.com
http:
paths:
- path: /api
pathType: Prefix
backend:
service:
name: my-api-service
port:
number: 80
- path: /
pathType: Prefix
backend:
service:
name: my-web-service
port:
number: 80В этом примере мы создаем ресурс Ingress, который направляет трафик на два разных сервиса в зависимости от пути. Запросы к /api будут перенаправлены на my-api-service, а все остальные запросы — на my-web-service.
Примените манифест с помощью команды:
kubectl apply -f my-ingress.yamlПосле успешного применения, проверьте доступность сервисов через Ingress, используя указанный хост и пути.
Инструмент проверяет HTTP-заголовки безопасности, конфигурацию SSL/TLS, утечки серверной информации и защиту от распространённых атак (XSS, clickjacking, MIMEsniffing). Оценка от A до F показывает общий уровень защиты.
Проверка Content-Security-Policy, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy и других.
Версия TLS, срок сертификата, цепочка доверия, поддержка HSTS.
Поиск раскрытых серверных версий, debug-режимов, открытых конфигов и директорий.
Детальный отчёт с объяснением каждой проблемы и конкретными шагами для исправления.
аудит HTTP-заголовков
проверка конфигурации
CSP и HSTS настройка
соответствие стандартам
Strict-Transport-Security.Server: Apache/2.4.52 помогает атакующим подобрать эксплойт. Скройте версию.DENY или SAMEORIGIN.nosniff браузер может интерпретировать файлы неправильно (MIME sniffing).Content-Security-Policy-Report-Only, мониторьте нарушения, затем включите.Server, X-Powered-By, X-AspNet-Version из ответов.История security-проверок и мониторинг HTTP-заголовков безопасности.
Зарегистрироваться (FREE)LoadBalancer — 1 external IP на Service (дорого в cloud). Ingress — один LB на весь кластер + L7-роутинг в несколько Services.
Для новых кластеров — рассмотрите. Для existing — Ingress стабилен и production-grade, миграция не приоритет.
Нет, можно руками pasted TLS secret. Но при 3+ доменах cert-manager экономит часы в месяц.
Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.