Sobes.tech
Junior

Czym jest NodePort i jaką funkcjonalność zapewnia?

sobes.tech AI

Odpowiedź od AI

NodePort to typ usługi w Kubernetes, który otwiera port na każdym węźle klastra. Ruch wysłany na ten port na dowolnym węźle jest przekierowywany do powiązanych z tym Service Podów.

Funkcjonalność NodePort:

  • Zmiana zachowania: Zapewnia zewnętrzny dostęp do usługi. Ruch spoza klastra może dotrzeć do usługi przez dowolny adres IP węzła i skonfigurowany NodePort.
  • Porty:
    • NodePort: Domyślny zakres 30000-32767. Może być zmieniany ustawieniami klastra.
    • TargetPort: Port na Podzie, na który kierowany jest ruch.
    • Port: Port usługi wewnątrz klastra.
Port Opis Zastosowanie
NodePort Port otwarty na każdym węźle Zewnętrzny dostęp do usługi
TargetPort Port na Podzie Przekierowanie ruchu z usługi do Podu
Port Port usługi w klastrze Wewnętrzna komunikacja między usługami
  • Dostępność: Usługa jest dostępna pod adresem NodeIP:NodePort z dowolnego węzła w klastrze.
  • Ograniczenia:
    • Wymaga otwarcia NodePort na każdym węźle.
    • Nie nadaje się do środowisk produkcyjnych ze względu na stały zakres portów i konieczność znajomości IP węzła.
    • Trudniejsza skalowalność w porównaniu do LoadBalancer lub Ingress.

Przykład YAML dla NodePort Service:

apiVersion: v1
kind: Service
metadata:
  name: my-nodeport-service
spec:
  type: NodePort
  selector:
    app: my-app # Selekcja do wyboru Podów
  ports:
    - protocol: TCP
      port: 80 # Port usługi
      targetPort: 8080 # Port na Podzie
      nodePort: 31000 # Przydzielony NodePort (opcjonalnie, wybierany automatycznie jeśli nie podano)