空响应 Kubernetes 负载均衡器

Empty Response Kubernetes Load Balancer

更新:它在我的 AWS Loadbalancer

的基本配置中显示“服务中的 0 个实例中的 0 个”

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

我已经完全按照本教程学习了(两次) https://kubernetes.io/docs/tutorials/stateless-application/expose-external-ip-address/

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

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

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

似乎有根本性的错误。也许我忘记了设置 kubernetes 集群的步骤?尽管这一切都得到了管理...

感谢指点!

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

对于 Fargate,建议使用 ALB Ingress Controller

入口规则示例:

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: /*

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