将Nginx入口绑定到静态IP地址 [英] Bind nginx-ingress to static IP Address

查看:605
本文介绍了将Nginx入口绑定到静态IP地址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在AWS EKS上为从外部系统访问的多个微服务设置一个入口控制器.

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

通过虚拟主机名(如svc1.acme.comsvc2.acme.com,...

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

我使用舵图设置了Nginx入口控制器: https ://github.com/helm/charts/tree/master/stable/nginx-ingress

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

我的想法是保留一个弹性IP地址,并通过设置变量externalIP将nginx-controller绑定到该IP.

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

这样,我应该能够使用稳定的通配符DNS条目*.acme.com --> 54.72.43.19

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

我可以看到入口控制器服务获得了externalIP,但是该IP无法访问.

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

知道为什么吗?

更新:

我使用以下命令安装了入口控制器:

I installed the ingress controller with this command:

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

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"]

externalIPs: ["54.72.43.19"]

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

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

推荐答案

也许您可以通过使用网络负载平衡器( https: //aws.amazon.com/blogs/opensource/network-load-balancer-support-in-kubernetes-1-9/):

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

这篇关于将Nginx入口绑定到静态IP地址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆