Чем отличаются механизмы ingress и nodePort в Kubernetes по своей функции и использованию?
Ответ от нейросети
sobes.tech AI
В Kubernetes NodePort и Ingress — это разные способы организации доступа к сервисам внутри кластера.
-
NodePort — это тип сервиса, который открывает фиксированный порт на каждом узле (Node) кластера. Внешний трафик может попасть на этот порт любого узла и будет перенаправлен на соответствующий сервис внутри кластера. Это простой способ открыть сервис извне, но требует знать IP-адреса узлов и порт.
-
Ingress — это более продвинутый объект, который управляет внешним доступом к сервисам на уровне HTTP/HTTPS. Ingress позволяет настроить маршрутизацию запросов по URL, хостам, поддерживает SSL-терминацию, балансировку нагрузки и другие возможности. Для работы Ingress нужен Ingress Controller.
Итог:
- NodePort — простой, работает на уровне TCP/UDP, открывает порт на каждом узле.
- Ingress — гибкий, работает на уровне HTTP, управляет маршрутизацией и SSL.
Пример NodePort сервиса:
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
type: NodePort
selector:
app: my-app
ports:
- port: 80
nodePort: 30080
Пример Ingress (упрощённый):
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80