背景:
$ 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集群?
答案 0 :(得分:1)
我希望grep -r cloud-provider= /etc/kubernetes/manifests
可以向您显示将标志显式设置为--cloud-provider=
的位置(即空值),或者让您知道没有这样的标志,其中如果需要,您可以在三个位置添加它们:
kube-apiserver.yaml
kube-cloud-provider.yaml
kubelet.service
中,或者您当前正在运行kubelet
之所以说“ need(?)”,是因为我曾经读过一篇文章,说kubernetes组件足够擅长自动检测其云环境,因此只有在您需要改进或更改时,才需要使用这些标志默认行为。但是,我只是检查了the v1.13 page,似乎没有任何“可选”内容。他们甚至走到现在甚至使--cloud-config=
看起来也必不可少的