如何将EKS Ingress与部分私有的ALB配合使用?

0

【以下的问题经过翻译处理】 Kubernetes 版本:1.23

大家好,

我有几个服务运行在 AWS EKS 中,并通过一个 Ingress(AWS 负载均衡器控制器)公开。我的 Ingress 文件如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}, {"HTTP":80}]'
    alb.ingress.kubernetes.io/certificate-arn: arn-of-certificate
    alb.ingress.kubernetes.io/healthcheck-path: /healthcheck
    alb.ingress.kubernetes.io/ssl-redirect: '443'
  name: app-ingress
  namespace: namespace
spec:
  rules:
  - host: my-domain.com
    http:
      paths:
      - path: /app1
        pathType: Prefix
        backend:
          service:
            name: app1-service
            port:
              name: app1-port
      - path: /app2
        pathType: Prefix
        backend:
          service:
            name: app2-service
            port:
              name: app2-port
      - path: /app3
        pathType: Prefix
        backend:
          service:
            name: app3-service
            port:
              name: app3-port
...
  tls:
  - hosts:
    - my-domain.com

一切都正常工作,但是我想,例如,使 app3 更加私密。我希望能够设置指定的 IP 地址才能访问该应用程序。我没有找到任何有用的信息。

例如,如果随机人员尝试访问 app1,他/她应该能够使用 https://my-domain.com/app1。 但是,如果他/她尝试使用https://my-domain.com/app3,并且他/她的 IP 地址未在允许的 IP 地址中,则将拒绝访问。

事实是,我想要为几个应用程序使用一个 ALB。

任何帮助都会很有用,比如一些链接或者应该寻找什么。我在想这是否可能?

或者唯一的解决方案是制作多个 ALB,然后对于 app3 更改网络配置以允许选择的 IP?

profile picture
EXPERTE
gefragt vor 6 Monaten18 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 可以通过CIDR范围在AWS安全组外部或通过NetworkPolicy资源在Kubernetes内部进行L3(IP)入口控制。

由于您正在使用一个Ingress和一个ALB,因此在ALB上创建一个安全组并不理想,因为它将影响所有目标。您的选择是:

  • 创建另一个Ingress/ALB并将app3移至该配置,然后通过ALB安全组限制源IP。
  • 在您的Kubernetes集群中添加网络策略,并为由app3服务前端的Pod创建网络策略。用户体验应该相同。
  • 您还可以查看Pod的安全组。但是,对于简单的L3入口控制,我建议使用ALB安全组或Kubernetes网络策略。

可以根据您使用的CNI将网络策略添加到Amazon EKS。对于AWS VPC CNI,您可以使用Calico项目。还有其他备选CNI供Amazon EKS使用。

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen