Sobes.tech
Junior

Какво е NodePort и каква функционалност предоставя?

sobes.tech AI

Отговор от AI

NodePort е тип услуга в Kubernetes, който отваря порт на всеки възел (Node) в клъстера. Трафикът, изпратен към този порт на който и да е възел, се пренасочва към свързаните с тази услуга Pods.

Функционалност на NodePort:

  • Промяна на поведението: Осигурява външен достъп до услугата. Трафикът извън клъстера може да достигне до услугата чрез всеки IP на възел и конфигурирания NodePort.
  • Порти:
    • NodePort: Стандартен диапазон 30000-32767. Може да бъде променен чрез настройките на клъстера.
    • TargetPort: Порт на Pod, към който се пренасочва трафикът.
    • Port: Порт на услугата вътре в клъстера.
Порт Описание Използване
NodePort Порт, отворен на всеки възел Външен достъп до услугата
TargetPort Порт в Pod Пренасочване на трафика от услугата към Pod
Port Порт на услугата вътре в клъстера Вътрешна комуникация между услуги
  • Достъпност: Услугата е достъпна чрез адрес NodeIP:NodePort за всеки възел в клъстера.
  • Ограничения:
    • Изисква отваряне на NodePort на всеки възел.
    • Не е подходящ за продукционна среда поради фиксирания диапазон на портовете и необходимостта да знаете IP адреса на възела.
    • По-трудно за мащабиране в сравнение с LoadBalancer или Ingress.

Пример YAML за NodePort услуга:

apiVersion: v1
kind: Service
metadata:
  name: my-nodeport-service
spec:
  type: NodePort
  selector:
    app: my-app # Селектор за избор на Pods
  ports:
    - protocol: TCP
      port: 80 # Порт на услугата
      targetPort: 8080 # Порт в Pod
      nodePort: 31000 # Назначен NodePort (по желание, автоматично ще бъде избран ако не е посочен)