空响应 Kubernetes 负载均衡器

Tob*_*ann 2 kubernetes aws-fargate kubernetes-ingress amazon-eks

更新:我的 AWS 负载均衡器的基本配置中显示“0 个实例正在服务中”

我知道,这是同标题的其他几个问题的重复,但几乎没有答案,所以我自己问这个:

我已经严格遵循本教程(两次) https://kubernetes.io/docs/tutorials/stateless-application/expose-external-ip-address/

我使用基于fargate的aws托管kubernetes。

在浏览器中调用 url 时得到的只是一个空响应。我已检查负载均衡器是否具有正确的权限和端口。那里一切都很好(全部由 AWS 自动设置)。

我已验证所有 Pod 都在运行,并且服务也在运行。此外,对于本特定教程及其设置来说,这似乎不是问题。实际上,我昨天在另一个 hello-world 部署(来自 aws-tutorial)中遇到了这个“空响应”问题。

似乎有什么根本性的错误。也许我忘记了设置 kubernetes 集群的一个步骤?虽然这一切都被管理了......

感谢您的指点!

Séb*_*and 6

将 Fargate 与 EKS 集群结合使用时,您无权访问节点实例。这意味着 Fargate 不支持 CLB/NLB。

对于 Fargate,建议使用ALB 入口控制器

入口规则示例:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    alb.ingress.kubernetes.io/scheme: internet-facing
    kubernetes.io/ingress.class: alb
  labels:
    app: hello-world
  name: hello-world
spec:
  rules:
  - http:
      paths:
      - backend:
          serviceName: my-service
          servicePort: 8080
        path: /*
Run Code Online (Sandbox Code Playgroud)

注意:如果您的 EKS 集群混合有 Fargate 和 EC2 实例,那么您将能够使用经典的负载均衡,它首先到达 EC2 eks 实例,然后使用内部 Kubernetes 路由将其转发到您的 Fargate Pod。