【问题标题】:LoadBalancer 'EXTERNAL IP" is in pending state after I installed k8s using helm Charts在我使用 helm Charts 安装 k8s 后,LoadBalancer 'EXTERNAL IP" 处于挂起状态
【发布时间】:2020-06-17 08:00:36
【问题描述】:

我在 EKS 上安装了带有 Helm Charts 的 K8S,但 Loadbalancer EXTERNAL IP 处于挂起状态,我看到 EKS 确实支持服务类型:LoadBalancer 现在。

我必须在网络传出流量级别检查吗?如有经验请分享。

发送,

【问题讨论】:

  • 它是否总是显示“待定状态”?
  • 试试这个命令..我在 EKS 中使用这个kubectl annotate svc <service-name> service.beta.kubernetes.io/aws-load-balancer-internal=0.0.0.0/0
  • 你是如何用 helm chart 安装 k8s 的?
  • @abestrad 是的,它总是显示处于待处理状态 - 进一步检查 .. 感谢 Avinash Kumar 的命令
  • @AvinashKumar 这个描述命令现在显示它正在确保 LB :Events: Type Reason Age From Message ---- ------ ---- ---- --- ---- Normal EnsuringLoadBalancer 2m (x49 over 3h) service-controller Ensuring load balancer 在运行你建议的这个命令之后..但仍然没有显示外部 IP,我在哪里捕获确切的日志在引擎盖下发生了什么这里

标签: kubernetes kubernetes-helm


【解决方案1】:

Loadbalancer 通常需要几秒钟或几分钟来为您配置 IP。

如果 5 分钟后未配置 IP: - 运行kubectl get svc <SVC_NAME> -o yaml,如果有任何不同的注释集。

  • 默认情况下,使用 Type:LoadBalancer 的服务会自动配置为使用 Classic Load Balancer。了解详情here

  • 如果您想使用网络负载均衡器,您必须使用注释:

service.beta.kubernetes.io/aws-load-balancer-type: nlb
  • 这个过程真的是自动的,你不必检查网络流量。

  • 您可以通过手动创建负载均衡器类型的服务来检查您正在部署的 Helm Chart 是否存在任何问题,并检查它是否已配置:

$ kubectl run --generator=run-pod/v1 nginx --image=nginx --port=80
pod/nginx created

$ kubectl get pod nginx
NAME    READY   STATUS    RESTARTS   AGE
nginx   1/1     Running   0          34s

$ kubectl expose pod nginx --type=LoadBalancer
service/nginx exposed

$ kubectl get svc nginx -w
NAME    TYPE           CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
nginx   LoadBalancer   10.1.63.178   <pending>     80:32522/TCP   7s
nginx   LoadBalancer   10.1.63.178   35.238.146.136   80:32522/TCP   42s
  • 在此示例中,LoadBalancer 使用 42s 进行配置。通过这种方式,您可以验证问题是在 Helm Chart 上还是在其他地方。

【讨论】:

  • 感谢您提供详细信息。不知何故,问题仍然相同,现在在 HelmCharts 级别进行调查。我无法获取底层日志/并发日志以了解它为何处于挂起状态?就像你知道的,是什么阻止它旋转 EXT IP。 ?
  • 您可能应该联系您的云提供商支持,因为提供 LoadBalancer IP 的操作由它管理。
【解决方案2】:

如果 Kubernetes 在不支持 LoadBalancer 服务的环境中运行,则不会配置负载均衡器,但该服务仍会像 NodePort 服务一样运行,您的云/K8 引擎应该支持 LoadBalancer 服务。

在这种情况下,如果您设法将 EIP 或 VIP 添加到您的节点,那么您可以附加到 K8 集群中 TYPE=LoadBalancer 的 EXTERNAL-IP,例如将 EIP/VIP 地址附加到节点 172.16.2.13.

kubectl patch svc ServiceName -p '{"spec": {"type": "LoadBalancer", "externalIPs":["172.16.2.13"]}}'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 2021-11-18
    • 2023-03-09
    相关资源
    最近更新 更多