Sobes.tech
Junior

Co je to NodePort a jakou funkčnost poskytuje?

sobes.tech AI

Odpověď od AI

NodePort je typ služby v Kubernetes, který otevírá port na každém uzlu (Node) v clusteru. Provoz zaslaný na tento port na jakémkoli uzlu je přesměrován na příslušné Pod(y) spojené s touto službou.

Funkce NodePort:

  • Změna chování: Poskytuje externí přístup ke službě. Provoz mimo cluster může dosáhnout služby přes jakoukoli IP adresu uzlu a nakonfigurovaný NodePort.
  • Porty:
    • NodePort: Výchozí rozsah 30000-32767. Může být změněn nastavením clusteru.
    • TargetPort: Port na Podu, na který je přesměrován provoz.
    • Port: Port služby uvnitř clusteru.
Port Popis Použití
NodePort Port otevřený na každém uzlu Externí přístup ke službě
TargetPort Port na Podu Přesměrování provozu od služby k Podu
Port Port služby uvnitř clusteru Vnitřní komunikace mezi službami
  • Dostupnost: Služba je dostupná na adrese NodeIP:NodePort z jakéhokoli uzlu v clusteru.
  • Omezení:
    • Vyžaduje otevření NodePort na každém uzlu.
    • Není vhodné pro produkční prostředí kvůli pevně stanovenému rozsahu portů a nutnosti znát IP uzlu.
    • Složitější škálování ve srovnání s LoadBalancer nebo Ingress.

Příklad YAML pro NodePort službu:

apiVersion: v1
kind: Service
metadata:
  name: my-nodeport-service
spec:
  type: NodePort
  selector:
    app: my-app # Výběr pro výběr Podů
  ports:
    - protocol: TCP
      port: 80 # Port služby
      targetPort: 8080 # Port na Podu
      nodePort: 31000 # Přiřazený NodePort (volitelný, automaticky vybrán, pokud není uveden)