Не удается получить доступ к развертыванию из средства балансировки нагрузки, созданного в EKS

#amazon-web-services #kubernetes #amazon-eks

#amazon-web-services #kubernetes #amazon-eks

Вопрос:

Я новичок в EKS (но знаком с k8s), и я пытаюсь запустить свой проект на EKS.

Я запустил развертывание my project и развертывание db, и оба запущены:

 kubectl get deploy -owide
NAME   READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES             SELECTOR
my-app   1/1     1            1           98m   my-app         me/my-app:latest   app=my-app
db     1/1     1            1           16h   db           mariadb:10.4.12    app=db
 

И я создал loadbalancer для доступа к модулям my-app:

 get svc -owide
NAME         TYPE           CLUSTER-IP       EXTERNAL-IP                                                               PORT(S)          AGE    SELECTOR
my-app         LoadBalancer   10.102.XXX.XXX   XXX-XXX.us-east-1.elb.amazonaws.com   8000:31722/TCP   114m   app=my-app
kubernetes   ClusterIP      10.102.0.1       <none>                                                                    443/TCP          39h    <none>
 

Я попытался подключиться к веб-сайту через внешний IP-адрес, созданный балансировщиком нагрузки (XXX-XXX.us-east-1.elb.amazonaws.com ), с портом (я пробовал 80, 8000 и 31722), и я получаю сообщение «сайт недоступен».

Я что-то пропустил?

Это служба my-app:

 apiVersion: v1
kind: Service
metadata:
  name: my-app
spec:
  type: LoadBalancer
  ports:
  - name: "8000"
    port: 8000
    targetPort: 8000
  selector:
    app: my-app
 

Это my-app yaml:

 apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app-deployment
  labels:
    app: my-app
  name: my-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - env:
        - name: REVERSE_PROXY
          value: "true"
        - name: UPLOAD_FOLDER
          value: /var/uploads
        - name: WORKERS
          value: "1"
        image: me/my-app:latest
        imagePullPolicy: ""
        name: my-app
        ports:
        - containerPort: 8000
        resources: {}
      restartPolicy: Always
      serviceAccountName: ""
 

Комментарии:

1. 1. предоставьте выходные данные конечных точек. 2. покажите свой yaml развертывания.

2. @Vitalii Я добавил yaml развертывания. И я не знаю, о каких конечных точках вы говорите

3. @Yagel Один раз проверьте группы безопасности вашего elb

4. kubectl получает конечные точки

Ответ №1:

Я бы предложил следующие шаги, чтобы найти первопричину;

  1. Проверьте, работает ли балансировщик laod XXX-XXX.us-east-1.elb.amazonaws.com домен доступен с хоста / компьютера, к которому вы пытаетесь получить доступ. Вы можете использовать команду ping для проверки доступности сети с вашего хоста / компьютера / ноутбука / рабочего стола.
  2. Если шаг 1 выполнен успешно, проверьте метрики cloudwatch по умолчанию для вашего балансировщика нагрузки. Пожалуйста, обратитесь к этому документу о просмотре показателей cloudwatch через веб-консоль AWS. Вы можете проверить количество неиспользуемых ошибок в этой метрике.
  3. Если вы не нашли никакой полезной информации на шаге 2 и если вы включили журналы потоков VPC, то вы можете отслеживать журналы потоков vpc, чтобы проверить, в чем проблема с сетевым трафиком, поступающим и исходящим из AWS load balancer. Для получения дополнительной информации о журналах потоков VPC, пожалуйста, обратитесь к этому документу от AWS.