繁体   English   中英

Kubernetes AWS EKS 负载均衡器未配置

[英]Kubernetes AWS EKS load balancer not provisioning

Neebie 来到 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 只是一直说挂起,并且没有配置负载均衡器。

谢谢

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

如果您有可用的 AWS EKS 集群控制平面日志,则可以在 CloudWatch Logs Insights 中执行以下查询。 有关执行 AWS CloudWatch Logs Insights 查询的信息,请参阅 AWS 的文档。 执行查询后,检查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

我在 ALB(入口类型)上遇到了同样的问题。

我可以通过 kubectl 的命令查看状态(错误/成功的原因),如下所示。 该命令帮助我了解错误原因,帮助我纠正它。

kubectl describe ingress <ingress component name> -n <name of namespace>

您可以从 yaml 文件中获取元数据部分中的命名空间名称和入口组件名称。

如果您使用的是 Mnikube

minikube tunnel

这会帮助你。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM