Sobes.tech
Назад к вопросам
Junior — Middle
81

Чем отличаются механизмы 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