Kubernetes выставляет входной ресурс (объект API) с балансировщиком нагрузки? - PullRequest
0 голосов
/ 13 июня 2018

У меня есть кластер kubernetes на Amazon EWS, на котором я собираюсь запустить несколько приложений.

У меня есть несколько сервисов, которые составляют одно такое приложение, и я хочу выставить их в Интернете с помощью балансировщика нагрузки Amazon(ELB).Я хочу использовать ELB, потому что я не хочу использовать порт 80 напрямую, так как многие приложения совместно используют этот порт, и я хочу, чтобы каждое из них определяло свой входной ресурс независимо от других.

Я читал о входе kubernetesресурсы и мысли, это именно то, что я ищу.Однако мне не удалось выставить его через сервис с балансировщиком нагрузки.Теперь, когда я читаю документацию, сервисы предназначены для предоставления пакетов, но входные данные:

Объект API, который управляет внешним доступом к сервисам в кластере, обычно HTTP.

Возможно ли то, что я пытаюсь сделать, или я не понял какую-то концепцию и пытаюсь сделать что-то невозможное или неправильное?


Мой код:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
  labels:
    id: ingress
spec:
  rules:
  - http:
      paths:
      - path: /api/devices
        backend:
          serviceName: device-management
          servicePort: 3001
      - path: /api/datasources
        backend:
          serviceName: data-acquisition
          servicePort: 3001
      - path: /auth,/account,/api/tenants,/api/users
        backend:
          serviceName: device-management
          servicePort: 3001
## TODO: Find out how to add subdomain entry for auth.domain and s3.domain 
---
apiVersion: v1
kind: Service
metadata:
  name: ingress
  labels:
    id: ingress
spec:
  type: LoadBalancer
  ports:
  - name: http
    port: 80
    targetPort: 80
  - name: https
    port: 443
    targetPort: 443
  selector:
    id: ingress 

Вывод изkubectl describe service ingress содержит

Конечные точки: нет

1 Ответ

0 голосов
/ 15 июня 2018

Проблема в том, что я не установил входной контроллер.Документация гласит:

Вам необходим контроллер Ingress для удовлетворения Ingress, простое создание ресурса не будет иметь никакого эффекта.

Входной контроллер создает модуль nginx исервис (балансировщик нагрузки), который затем реализует правила, описанные во всех входных ресурсах.В руководстве по установке содержится дополнительная информация о том, как установить его на разных платформах.

Входной контроллер заменяет службу, которую я описал выше, и реализует все входящие ресурсы, описанные в кластере.

...