В AWS я пытаюсь настроить свой кластер K8S с помощью EKS, и из-за моего ограниченного опыта работы с AWS и его сервисами я изо всех сил пытаюсь настроить интеграцию между различными частями.
Контекст:
eksctl (VPC, подсети и шлюз NAT были созданы автоматически с помощью eksctl).eksctl), одна в частной подсети, а другая в общедоступной подсети.apiVersion: apps/v1
kind: Deployment
metadata:
name: api-dev-deployment
namespace: dev
spec:
replicas: 1
selector:
matchLabels:
app: api-dev
template:
metadata:
labels:
app: api-dev
spec:
nodeSelector:
subnet-type: private
containers:
- name: api-dev
image: [my private image URL from ECR]
ports:
- containerPort: 5000Развертывание модуля в порядке, и он может подключаться к Интернету из частной подсети (подключение к mongodb atlas в моем случае), поэтому шлюз NAT здесь работает нормально.
Чего я пытаюсь достичь:
Что я сделал:
/status (конечная точка проверки работоспособности из моего приложения) методом GET.HTTP в качестве типа интеграции и установил значение http://192.168.98.28:5000/status в качестве URL-адреса конечной точки (192.168.98.28 — это внутренний IP-адрес моего модуля в частной сети, полученный с помощью kubectl: kubectl get pods -o wide)Что происходит не так:
Когда я пытаюсь выполнить тестовый вызов конечной точки шлюза API, я получаю сообщение об ошибке 500:
Сб, 5 августа, 16:33:18 UTC 2023: выполнение не удалось из-за ошибки конфигурации: недопустимый адрес конечной точки.
Может ли кто-нибудь помочь мне в настройке вышеупомянутого? Я просмотрел много документации, но не могу найти хорошую.





Я думаю, что в первую очередь вам нужен сервис типа Loadbalancer для выставления вашего модуля, я также думаю, что и шлюз API, и кластер EKS находятся в разных VPC, поэтому подключить их без конечных точек VPC невозможно.
Таким образом, внешний трафик будет направляться через API-шлюз, который отправляет трафик на службы, размещенные внутри EKS, через VPC Private Link -> ELB.
Вот блог для ознакомления
Я не уверен, что можно получить ответ от модуля напрямую без
service. Когда вы создаете сервис для предоставления развертывания, он запускает балансировщик нагрузки aws. Вы получите ответ от этого балансировщика нагрузки.