Мы работаем с сервером API на GKE (движок Google Kubernetes). Мы обрабатываем нашу авторизацию, используя Google Cloud Endpoints и ключи API. Мы помещаем в белый список определенные IP-адреса в каждом ключе API. Чтобы сделать это, нам пришлось переключиться с балансировщика нагрузки на входной контроллер для демонстрации нашего сервера API. Белый список IP-адресов не работает со службой loadbalancer. Теперь у нас есть входная настройка, подобная этой:
apiVersion: v1
kind: Service
metadata:
name: echo-app-nodeport
spec:
ports:
- port: 80
targetPort: 8080
protocol: TCP
name: http
selector:
app: esp-echo
type: NodePort
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: echo-app-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: "RESERVED_IP"
kubernetes.io/ingress.allow-http: "false"
spec:
tls:
- secretName: SECRET_NAME
backend:
serviceName: echo-app-nodeport
servicePort: 80
Эта настройка работает нормально, и работает белый список IP-адресов. Теперь моя забота связана, прежде всего, с NodePort, который необходим для работы входного контроллера. Я прочитал несколько источников [1] [2] , которые настоятельно рекомендуют не использовать NodePorts для показа вашего приложения. Тем не менее, большинство примеров, которые я нахожу, используют эту комбинацию NodePort + Ingress. Можем ли мы безопасно использовать эту настройку или мы должны перейти на другой входной контроллер (NGINX, Traefik, ..)?