Привязать nginx-вход к статическому IP-адресу - PullRequest
0 голосов
/ 09 ноября 2018

Я хочу настроить входной контроллер на AWS EKS для нескольких микросервисов, доступ к которым осуществляется из внешней системы.

Микроуслуги доступны через виртуальные имена хостов, такие как svc1.acme.com, svc2.acme.com, ...

Я настроил входной контроллер nginx с помощью рулевого управления: https://github.com/helm/charts/tree/master/stable/nginx-ingress

Моя идея состояла в том, чтобы зарезервировать Elastic IP Address и связать контроллер nginx с этим IP, установив переменную externalIP.

Таким образом я смогу получить доступ к службам с помощью стабильной записи DNS с подстановочным знаком *.acme.com --> 54.72.43.19

Я вижу, что служба входящего контроллера получает внешний IP, но IP недоступен.

NAME                                    TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-ingress-controller        LoadBalancer   10.100.45.119    54.72.43.19   80:32104/TCP,443:31771/TCP   1m

Есть идеи, почему?

Обновление:

Я установил входной контроллер с помощью этой команды:

helm install --name ingress -f values.yaml stable/nginx-ingress

Вот суть значений, единственное, что изменилось по умолчанию, это

externalIPs: ["54.72.43.19"]

https://gist.github.com/christianwoehrle/3b136023b1e0085b028a67ca6a0959b7

1 Ответ

0 голосов
/ 14 ноября 2018

Возможно, вы сможете добиться этого, используя сетевой балансировщик нагрузки (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html),, который поддерживает фиксированные IP-адреса, в качестве основы для вашего входа в Nginx, например (https://aws.amazon.com/blogs/opensource/network-load-balancer-support-in-kubernetes-1-9/):

apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: default
  labels:
    app: nginx
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
spec:
  externalTrafficPolicy: Local
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
type: LoadBalancer
...