如何解决无法启动服务控制器:警告:未提供云提供商

时间:2018-12-29 04:39:43

标签: amazon-web-services kubernetes cloud

背景:

$ kubectl get services -n ingress-nginx  
NAME            TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE   
ingress-nginx   LoadBalancer   10.108.245.210   <pending>     80:30742/TCP,443:31028/TCP   41m     

$ kubectl cluster-info dump | grep LoadBalancer  
 14:35:47.072444 1 core.go:76] Failed to start service controller: WARNING: no cloud provider provided, services of type LoadBalancer will fail

k8s群集已启动并正常运行。 -

$ ls /etc/kubernetes/manifests  
etcd.yaml  kube-apiserver.yaml  kube-controller-manager.yaml  kube-scheduler.yaml  

~$ kubectl get services --all-namespaces
NAMESPACE       NAME                   TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
default         kubernetes             ClusterIP      10.96.0.1       <none>        443/TCP                      21h
ingress-nginx   default-http-backend   ClusterIP      10.100.2.163    <none>        80/TCP                       21h
ingress-nginx   ingress-nginx          LoadBalancer   10.108.221.18   <pending>     80:32010/TCP,443:31271/TCP   18h
kube-system     kube-dns               ClusterIP      10.96.0.10      <none>        53/UDP,53/TCP                21h

如何在现有设置中将云提供商链接到kubernetes集群?

1 个答案:

答案 0 :(得分:1)

我希望grep -r cloud-provider= /etc/kubernetes/manifests可以向您显示将标志显式设置为--cloud-provider=的位置(即空值),或者让您知道没有这样的标志,其中如果需要,您可以在三个位置添加它们:

之所以说“ need(?)”,是因为我曾经读过一篇文章,说kubernetes组件足够擅长自动检测其云环境,因此只有在您需要改进或更改时,才需要使用这些标志默认行为。但是,我只是检查了the v1.13 page,似乎没有任何“可选”内容。他们甚至走到现在甚至使--cloud-config=看起来也必不可少的