【问题标题】:AWS ElasticIP to nginx ingress controller EKS?AWS弹性IP到nginx入口控制器EKS?
【发布时间】:2021-09-21 05:59:57
【问题描述】:

我有一个简单的任务,但是看了几十篇文章也没有解决。

有一个使用 eksctl、ElasticIP 从演示模板创建的简单 AWS EKS 集群,无需更改即可安装 https://bitnami.com/stack/nginx-ingress-controller/helm

在 AWS EKS nginx 入口控制器 1234567890.eu-central-1.elb.amazonaws.com 上有一个域 https://stage.mydomain.com 我想使用 DNS A 记录转发到 ElasticIP,以便我的所有服务集群在此 ElasticIP 地址可用。

我尝试过负载均衡器和网络均衡器,但它不起作用。

是否有经过验证的文章或一系列操作可以解决此问题并使用这组服务?

【问题讨论】:

  • 是的,这个问题确实会出现,即使您按照教程进行操作。因为负载均衡器发生了变化。请遵循本教程:eksworkshop.com。这对我来说适用于 EC2 和 Fargate 部署

标签: kubernetes amazon-ec2 amazon-eks nginx-ingress elastic-ip


【解决方案1】:

是的,这在 AWS 文章中很常见,NLD 值也只是这样来的

https://aws.amazon.com/blogs/opensource/network-load-balancer-nginx-ingress-controller-eks/

在上述文章中,使用 NLB 作为后端安装 NGINX 控制器,提供 IP 的方式相同。

在这种情况下,您可以添加 DNSACNAME

一旦您的入口控制器设置完成,您将获得LB 端点,您必须将其添加到DNS 作为A 记录或CNAME

这会将请求转发到集群。

现在在集群内部,您必须使用 YAML 创建入口

https://kubernetes.io/docs/concepts/services-networking/ingress/

ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: minimal-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /testpath
        pathType: Prefix
        backend:
          service:
            name: test
            port:
              number: 80

对于NLB,可以在服务中添加注解

**service.beta.kubernetes.io/aws-load-balancer-type: nlb**


apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
    service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: '60'
    service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: 'true'
    service.beta.kubernetes.io/aws-load-balancer-type: nlb
  labels:
    helm.sh/chart: ingress-nginx-2.0.3
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.32.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: controller
  name: ingress-nginx-controller
  namespace: ingress-nginx
spec:
  type: LoadBalancer
  externalTrafficPolicy: Local
  ports:
    - name: http
      port: 80
      protocol: TCP
      targetPort: http
    - name: https
      port: 443
      protocol: TCP
      targetPort: https
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/component: controller

【讨论】:

  • 感谢您的文章,我也查看了。不幸的是,它没有回答这个问题,我如何使用 AWS ElasticIP,以便 stage.domain.com 域(未向 AWS 注册并且具有使用此 AWS ElasticIP 指定的 A 记录)成为所有服务的集群入口点在我的集群中? NLB和nginx-ingress需要哪些配置参数?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-06
  • 2020-07-13
  • 2022-01-26
  • 2018-06-24
  • 2020-02-12
  • 2021-12-02
  • 1970-01-01
相关资源
最近更新 更多