我一直在尝试部署我的Kubernetes服务,但是它说仍然在等待并一直挂起。我等了1天半,但仍在等待。
Static-Site-Service.yaml
apiVersion: v1
kind: Service
metadata:
name: static-site-service
annotations:
imageregistry: "https://hub.docker.com/"
labels:
app: static-site
spec:
type: LoadBalancer
ports:
- name: http
port: 8080
protocol: TCP
targetPort: 8080
selector:
app: static-site
sessionAffinity: None发布于 2021-07-21 07:30:16
根据文献资料
需要注意的是,此功能的数据路径是由Kubernetes集群外部的负载平衡器提供的。 当服务类型设置为LoadBalancer时,Kubernetes向集群中的pods提供等同于类型等于ClusterIP的功能,并通过为Kubernetes荚的条目编程(Kubernetes外部)负载均衡器来扩展它。Kubernetes服务控制器自动创建外部负载均衡器、健康检查(如果需要)、防火墙规则(如果需要),并检索云提供者分配的外部IP并将其填充到服务对象中。
换句话说,您的kubernetes集群需要知道如何设置一个负载均衡器,因为它是由运行集群的环境而不是kubernetes本身提供的。
例如,如果您在AWS上运行kubernetes,并且正确设置了您的Controller Manager,那么每次您创建一个具有LoadBalancer类型的Service时,都会为您创建一个新的ELB。
其他所有受支持的云提供商(Azure、GCE、Digital等)也是如此。
如果您是在前提下运行或在不受支持的云提供商上运行,则不会为您创建LoadBalancer,而且只要您不设置专用解决方案(如MetalLB )来命名随机解决方案,服务就永远是pending。
我建议阅读这篇博客文章了解更多细节。
发布于 2021-07-21 08:07:18
在服务中的K8S类型“负载平衡器”中,我们通常在云环境中使用。根据错误,我假设您没有使用任何云环境。这样您就可以切换到其他服务类型。
如果您仍然希望继续并进行实验,那么您可以在相同的LoadBalancer类型块中手动分配IP。它将分配IP和服务将从挂起状态。
apiVersion: v1
kind: Service
spec:
...
type: LoadBalancer
loadBalancerIP: <your IP>https://stackoverflow.com/questions/68464562
复制相似问题