【问题标题】:AWS ALB not resolvingAWS ALB 未解析
【发布时间】:2019-02-12 03:30:27
【问题描述】:

所以我有一个 EKS 集群,并设置了 AWS Alb Ingress Controller:

https://github.com/kubernetes-sigs/aws-alb-ingress-controller

我正在尝试在这里设置 Grafana,Ingress 已创建,但似乎根本无法解决。

我有以下 Ingress:

$ kubectl describe ingress grafana
Name:             grafana
Namespace:        orbix-mvp
Address:          4ae1e4ba-orbixmvp-grafana-fd7d-993303634.eu-central-1.elb.amazonaws.com
Default backend:  default-http-backend:80 (<none>)
Rules:
  Host                        Path  Backends
  ----                        ----  --------
  grafana-orbix.orbixpay.com  
                              /   grafana:80 (<none>)
Annotations:
  alb.ingress.kubernetes.io/scheme:         internet-facing
  alb.ingress.kubernetes.io/ssl-policy:     ELBSecurityPolicy-2016-08
  alb.ingress.kubernetes.io/subnets:        subnet-08431d96168e36c30,subnet-0e2a7e2766852bf8a
  alb.ingress.kubernetes.io/success-codes:  302
  kubernetes.io/ingress.class:              alb
Events:
  Type    Reason  Age   From                    Message
  ----    ------  ----  ----                    -------
  Normal  CREATE  45m   alb-ingress-controller  LoadBalancer 4ae1e4ba-orbixmvp-grafana-fd7d created, ARN: arn:aws:elasticloadbalancing:eu-central-1:109153834985:loadbalancer/app/4ae1e4ba-orbixmvp-grafana-fd7d/4b98cb7027b71697
  Normal  CREATE  45m   alb-ingress-controller  rule 1 created with conditions [{    Field: "host-header",    Values: ["grafana-orbix.orbixpay.com"]  },{    Field: "path-pattern",    Values: ["/"]  }]

它的后端是以下服务:

$ kubectl describe service grafana
Name:                     grafana
Namespace:                orbix-mvp
Labels:                   app=grafana
                          chart=grafana-1.25.1
                          heritage=Tiller
                          release=grafana
Annotations:              <none>
Selector:                 app=grafana,release=grafana
Type:                     NodePort
IP:                       172.20.11.232
Port:                     service  80/TCP
TargetPort:               3000/TCP
NodePort:                 service  30772/TCP
Endpoints:                10.0.0.180:3000
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

它确实有一个合适的端点:

$ kubectl get endpoints | grep grafana
grafana                         10.0.0.180:3000                  46m

pod 本身已正确标记并具有正确的 IP,即上面的端点:

$ kubectl describe pod grafana-bdc977fd4-ptzhg
Name:               grafana-bdc977fd4-ptzhg
Namespace:          orbix-mvp
Priority:           0
PriorityClassName:  <none>
Node:               ip-10-0-0-230.eu-central-1.compute.internal/10.0.0.230
Start Time:         Mon, 11 Feb 2019 13:24:43 +0200
Labels:             app=grafana
                    pod-template-hash=687533980
                    release=grafana
Annotations:        <none>
Status:             Running
IP:                 10.0.0.180

我的 AWS 账户将 LoadBalancer 列为活动,子网与集群位于同一 VPC 上,安全组由 Ingress Controller 生成。

一切似乎都已正确设置,但是当我访问 LoadBalancer 地址时,它只是超时了。

$ kubectl get ingresses
NAME                HOSTS                           ADDRESS                                                                     PORTS   AGE
grafana             grafana-orbix.orbixpay.com      4ae1e4ba-orbixmvp-grafana-fd7d-993303634.eu-central-1.elb.amazonaws.com     80      49m

【问题讨论】:

  • 检查你的服务端口
  • @HarshManvar Ingress 指向端口 80 上的服务,服务接受 80 上的连接并重定向到端口上的端口 3000。在上面的配置中,这对我来说绝对是正确的。
  • 工作节点的安全组(不是 ALB)是否允许端口 30772 上的流量?
  • @PoweredByOrange 是的,我今天检查了安全组 - 工作节点的 SG 允许 30000 - 32775 或其他值,并允许来自 ALB 安全组的流量。

标签: amazon-web-services kubernetes


【解决方案1】:

我实际上想通了 - Ingress 配置只允许域的流量。 排除到负载均衡器地址的流量(我假设默认情况下允许)。

基本上需要允许 * 才能使负载均衡器 URL 也能正常工作。此外,如果应用程序重定向到/login,就像我的情况一样,所有路径也需要被允许,因为如果指定的路径仅用于/,则该重定向不起作用。

【讨论】:

    猜你喜欢
    • 2020-07-03
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 2017-05-26
    • 2017-07-28
    • 2017-09-02
    相关资源
    最近更新 更多