簡體   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