Почему я не могу получить доступ к своему EKS NLB из Интернета?
У меня есть кластер EKS с 3 узлами, работающий на AWS. это частный кластер в частной подсети с хостом-бастионом в общедоступной подсети. Оба в одном и том же VPC. Маршрутизация была настроена, и она работает, поскольку у меня настроен интернет-шлюз и настроен шлюз NAT.
У меня запущено приложение для реагирования, для которого я попытался создать балансировщик сетевой нагрузки. Однако, когда я перехожу по адресу в браузере, я не могу найти доступ к моему приложению React. До этого я тестировал это с помощью классического балансировщика нагрузки и смог получить доступ к приложению React из веб-браузера. Поэтому я не уверен, в чем разница с Network Load Balancer. Контроллер AWS NLB также установлен правильно.
kind: Service
apiVersion: v1
metadata:
name: <svc-name>
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: external
service.beta.kubernetes.io/aws-load-balancer-subnets: private-subnet,public-subnet
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip
service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
spec:
selector:
app: <pod-selector-name>
type: LoadBalancer
ports:
- protocol: TCP
port: 80
targetPort: 80
Я также вижу, что Network Load Balancer был создан в консоли AWS с активным состоянием и DNS типа k8s-XXXXXXxxxxxxxXXX-10fc47.elb.eu-west-1.amazonaws.com. Я пытался использовать этот DNS в браузере, как если бы я использовал классический балансировщик нагрузки, но он не работает.
Когда я смотрю на слушателей, я вижу изображение ниже
И когда я углубляюсь в переадресацию, чтобы увидеть цели, я вижу некоторые IP-адреса в списке и в работоспособном состоянии, хотя эти частные IP-адреса не совпадают с EKS-узлами, на которых запущено приложение K8s React. поэтому я не уверен, что это причина.