Привязать nginx-ingress к статическому IP-адресу

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

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

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

Моя идея заключалась в том, чтобы зарезервировать эластичный IP-адрес и привязать 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


person christian    schedule 09.11.2018    source источник
comment
какие еще шаги вы сделали для настройки этого контроллера входящего трафика?   -  person aurelius    schedule 09.11.2018
comment
Возможно, я вообще ошибаюсь. Я читал, что aws elb не может иметь статический ip-адрес. Возможно, мне придется жить с динамическими IP-адресами и решить это с помощью DNS.   -  person christian    schedule 10.11.2018


Ответы (1)


Возможно, вы сможете добиться этого с помощью балансировщика сетевой нагрузки (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
person Paulo Schreiner    schedule 14.11.2018