Kubernetes AWS EKS 负载均衡器未配置

Posted

技术标签:

【中文标题】Kubernetes AWS EKS 负载均衡器未配置【英文标题】:Kubernetes AWS EKS load balancer not provisioning 【发布时间】:2021-03-28 22:58:42 【问题描述】:

了解 Kubernetes AWS EKS 的世界,很高兴获得支持。

我正在尝试部署节点应用程序。我在 EKS 上的 IAM 角色上附加了正确的 IAM 策略,我还在私有子网和公共子网上设置了正确的标签。

我的 Kubernetes yml 看起来像这样。

kind: Deployment
metadata:
  name: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test
  template:
    metadata:
      labels:
        app: test
    spec:
      containers:
        - name: test
          image: test:latest
          ports:
            - containerPort: 3000
          imagePullPolicy: Always
---
kind: Service
apiVersion: v1
metadata:
  name: test
spec:
  type: LoadBalancer
  selector:
    app: test
  ports:
  - protocol: TCP
    port: 80
    targetPort: 9376

服务启动,但外部 ip 只是一直说挂起,并且没有配置负载均衡器。

谢谢

【问题讨论】:

【参考方案1】:

要解决此问题,您可以在 AWS EKS 集群控制平面日志下找到相关的故障日志。请参阅 AWS 的 this 文档,其中包含查看 AWS EKS 集群控制平面日志的步骤,以及启用控制平面日志的步骤。

如果您有可用的 AWS EKS 集群控制平面日志,则可以在 CloudWatch Logs Insights 中执行以下查询。有关执行 AWS CloudWatch Logs Insights 查询的信息,请参阅来自 AWS 的 this 文档。查询完成后,查看responseObject.reason字段的值,也可以展开消息查看详情。

fields @timestamp, @message, requestObject.kind, requestObject.metadata.name,requestObject.spec.type,responseObject.status,responseObject.message,responseObject.reason,requestObject.spec.selector.app
| filter requestObject.spec.type='LoadBalancer' 
| sort @timestamp desc

【讨论】:

【参考方案2】:

如果您使用的是 Mnikube

minikube tunnel

这会对你有所帮助。

此命令可以公开 LoadBalancer 类型的服务。

这是参考https://minikube.sigs.k8s.io/docs/commands/tunnel/。

【讨论】:

这个问题与 minikube 无关,甚至与本地开发无关。不是一个相关的答案。

以上是关于Kubernetes AWS EKS 负载均衡器未配置的主要内容,如果未能解决你的问题,请参考以下文章

EKS 上的网络负载均衡器与 AWS 负载均衡器控制器

Terraform AWS EKS ALB Kubernetes Ingress 不会创建侦听器或目标组

使用 AWS 负载均衡器将来自 EKS 的 FastAPI 公开给外部世界

这些Kubernetes常见安全问题,你遇到过几个?

AWS 中的 Kubernetes 自动缩放

负载均衡器的 AWS EKS 服务 EXTERNAL-IP 处于待处理状态