Bind nginx-ingress to static IP Address

大城市里の小女人 提交于 2020-01-15 09:22:30

问题


I want to set up an ingress controller on AWS EKS for several microservices that are accessed from an external system.

The microservices are accessed via virtual host-names like svc1.acme.com, svc2.acme.com, ...

I set up the nginx ingress controller with a helm chart: https://github.com/helm/charts/tree/master/stable/nginx-ingress

My idea was to reserve an Elastic IP Address and bind the nginx-controller to that IP by setting the variable externalIP.

This way I should be able to access the services with a stable wildcard DNS entry *.acme.com --> 54.72.43.19

I can see that the ingress controller service get the externalIP, but the IP is not accessible.

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

Any idea why?

Update:

I installed the ingress controller with this command:

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

Here is the gist for values, the only thing changed from the default is

externalIPs: ["54.72.43.19"]

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


回答1:


Maybe you can achieve that by using a Network Load Balancer (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html), that supports fixed IPs, as the backing for your Nginx ingress, eg (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


来源:https://stackoverflow.com/questions/53227358/bind-nginx-ingress-to-static-ip-address

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!