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 |
Необходим внешний Ingress-controller, очень часто Nginx.
Ingress классы
Позволяют запустить несколько ingress контроллеров в одном кластере. Сначала привязывается Ingress контроллер к классу, затем при создании объект Ingress привязывается к классу.
Пример
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 |
No Comments