Sobes.tech
Junior

Какви са маршрутите в Kubernetes и за какво се използват?

sobes.tech AI

Отговор от AI

Рутове маршрутизиране, или Ingress Routes, в Kubernetes, е начин за предоставяне на външен достъп до услугите вътре в клъстера. Те позволяват управление на входящия трафик, като го насочват към съответните услуги според правилата, определени от потребителя.

Основните цели на използването на маршрути:

  • Осигуряване на външен достъп: Правят приложенията достъпни отвън към клъстера.
  • Балансировка на натоварването: Разпределят входящия трафик между няколко екземпляра на услуги.
  • SSL/TLS терминализация: Обработват HTTPS връзки на ниво Ingress, освобождавайки услугите.
  • Виртуално хостване: Позволяват насочване на трафика към различни услуги в зависимост от името на хоста в заявката.
  • Рутинг на база път: Насочват трафика към различни услуги в зависимост от URL пътя в заявката.

Типичната структура на правило за маршрутизиране (в манифеста на Ingress) може да изглежда така:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: primer-ingress
spec:
  rules:
  - host: primer.bg
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-service
            port:
              number: 80
      - path: /api
        pathType: Prefix
        backend:
          service:
            name: api-service
            port:
              number: 8080

В този пример, трафикът към primer.bg без указание за път се насочва към услугата my-service (порт 80), а трафикът към primer.bg/api – към услугата api-service (порт 8080).

За да работи Ingress, е необходим Ingress Controller, който действа като обратен прокси и реализира правилата, определени в ресурсите Ingress. Популярните контролери включват Nginx Ingress Controller, Ambassador, Traefik.