Hi在centos中使用kubeadm安装了Kubernetes
当我在yaml文件中使用类型Load Balancer创建部署时,Kubernetes LB的外部IP为Pending
,它停留在Pending状态
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 13m
service LoadBalancer 10.101.168.76 <pending> 80:32225/TCP 4m52s
答案 0 :(得分:2)
请尝试运行:
kubectl describe svc <service-name>
并检查错误/警告。
下面的示例输出中的事件字段下描述了一个可能的错误示例-( SyncLoadBalancerFailed-找不到用于创建ELB的任何合适的子网):
Name: some-service
Namespace: default
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"some-service","namespace":"default"},"spec":{"ports":[{"port":80,...
Selector: app=some
Type: LoadBalancer
IP: 10.100.91.19
Port: <unset> 80/TCP
TargetPort: 5000/TCP
NodePort: <unset> 31022/TCP
Endpoints: <none>
Session Affinity: None
External Traffic Policy: Cluster
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal EnsuringLoadBalancer 68s (x8 over 11m) service-controller Ensuring load balancer
Warning SyncLoadBalancerFailed 67s (x8 over 11m) service-controller Error syncing load balancer: failed to ensure load balancer: could not find any suitable subnets for creating the ELB
答案 1 :(得分:0)
已经讨论了十多次。
1)https://stackoverflow.com/a/53520738/9929015
2)https://stackoverflow.com/a/53343935/9929015
3)https://stackoverflow.com/a/53520738/9929015
4)https://stackoverflow.com/a/50080291/9929015
简而言之
Kubernetes不提供网络实现 裸机的负载均衡器(LoadBalancer类型的服务) 集群。 Kubernetes确实提供的Network LB的实现 都有调用各种IaaS平台(GCP, AWS,Azure ...)。如果您未在受支持的IaaS平台(GCP, AWS,Azure…),LoadBalancers将保持“待处理”状态 创建后无限期。
裸机操作员只剩下两个较小的工具 用户流量进入其群集“ NodePort”和“ externalIP” 服务。这两个选项都存在严重的缺点 生产用途,使裸金属集群成为二等公民 在Kubernetes生态系统中。
MetalLB旨在通过提供Network LB来纠正这种不平衡 与标准网络设备集成的实施,因此 裸机集群上的外部服务也“正常工作” 尽可能。
官方文档:https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
在支持外部负载均衡器的云提供商上,设置 LoadBalancer的type字段为您的负载均衡器 服务。实际创建负载均衡器 异步,关于预配置的平衡器的信息是 在服务的.status.loadBalancer字段中发布。例如
来自外部负载均衡器的流量定向到后端 豆荚。云提供商决定如何进行负载均衡。
某些云提供商允许您指定loadBalancerIP。在那些 在这种情况下,负载均衡器是根据用户指定的 loadBalancerIP。如果未指定loadBalancerIP字段,则 用临时IP地址设置loadBalancer。如果您指定一个 loadBalancerIP,但您的云提供商不支持该功能, 您设置的loadbalancerIP字段将被忽略。
MetalLB项目: