![](/img/trans.png)
[英]kube-controller-manager doesn't start when using “cloud-provider=aws” with kubeadm
[英]How to resolve Failed to start service controller: WARNING: no cloud provider provided
背景:
$ 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集群?
我希望grep -r cloud-provider= /etc/kubernetes/manifests
可以向您顯示將標志顯式設置為--cloud-provider=
(即空值),或者讓您知道存在沒有這樣的標志,在這種情況下,您需要在三個位置添加它們:
kube-apiserver.yaml
kube-cloud-provider.yaml
kubelet.service
或者您當前正在運行kubelet
我之所以說“ need(?)”,是因為我想我曾經讀過一篇文章,說kubernetes組件足夠擅長自動檢測其雲環境,因此僅當您需要改進或更改默認行為時才需要使用這些標志。 。 但是,我只是檢查了v1.13頁面 ,似乎沒有任何“可選”內容。 他們甚至走到現在也使--cloud-config=
看起來也是強制性的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.