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 负载均衡器未配置的主要内容,如果未能解决你的问题,请参考以下文章
Terraform AWS EKS ALB Kubernetes Ingress 不会创建侦听器或目标组