Можно ли опустить часть nodePort?
Да и Нет.
- Не напрямую. Kubernetes всегда предоставляет внешние службы, даже службы типа LoadBalancer, на порту узла.
- Да. Если вы поставите перед ним балансировщик нагрузки. Либо ваш собственный, который перенаправляет порт
80
и / или 443
на ваш NodePort, либо тип службы LoadBalancer , который, по сути, устанавливает внешний балансировщик нагрузки, который перенаправляет трафик c на ваш NodePort.
Не могли бы вы привести пример?
Служба NodePort для раскрытия вашего входящего трафика в основном такая же, вам просто нужно настроить собственный внешний балансировщик нагрузки. (например, AWS ELB / ALB / NLB, балансировщик нагрузки GCP, Azure балансировщик нагрузки, F5 и т.д. c, и c)
kind: Service
apiVersion: v1
metadata:
name: traefik-ingress-service
namespace: kube-system
spec:
selector:
k8s-app: traefik-ingress-lb
ports:
- protocol: TCP
port: 80
name: web
- protocol: TCP
port: 8080
name: admin
type: NodePort
LoadBalancer type - это просто изменение типа службы:
kind: Service
apiVersion: v1
metadata:
name: traefik-ingress-service
namespace: kube-system
spec:
selector:
k8s-app: traefik-ingress-lb
ports:
- protocol: TCP
port: 80
name: web
- protocol: TCP
port: 8080
name: admin
type: LoadBalancer
В приведенном выше случае Kubernetes автоматически управляет балансировщиком нагрузки в провайдере .