# Ingress
Используется для организации внешнего взаимодействия на L7 уровне. Ingress ресурсы определяют правила маршрутизации, Ingress контроллер выполняет задачу.
Маршрутизация в смысле L7, не в смысле L3
Могут быть host-based и path-based маршруты:
Host-based example | Path-based example | Backend K8s Service |
shield.mcu.com | mcu.com/shield | shield |
hydra.mcu.com | mcu.com/hydra | hydra |
[](http://bobrobotirk.ru/uploads/images/gallery/2025-03/k8s-ingress-1.JPG)
Необходим внешний Ingress-controller, очень часто Nginx.
**Ingress классы**
Позволяют запустить несколько ingress контроллеров в одном кластере. Сначала привязывается Ingress контроллер к классу, затем при создании объект Ingress привязывается к классу.
**Пример**
```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: mcu-all
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: nginx
rules:
- host: shield.mcu.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: svc-shield
port:
number: 8080
- host: mcu.com
http:
paths:
- path: /shield
pathType: Prefix
backend:
service:
name: svc-shield
port:
number: 8080
```
**Основные команды**
Команда | Доп. пар. | Описание |
kubectl get ingressclass | | Список классов Ingress |
kubectl describe ingressclass class\_name | | Детализация для класса class\_name |
kubectl get ingress my-ingress -n my-ns -o yaml | | Получить конфигурацию в виде yaml |
kubectl get ing | | Список ingress |
kubectl describe ing mcu-all |
| Детализация ingress |