--cloud-provider=external`,并且 `kube-apiserver` 和 `kube-controller-manager` 必须不配置 cloud provider。
kube-apiserver
的准入控制选项不能包含 PersistentVolumeLabel。cloud-controller-manager
独立运行,并开启 InitializerConifguration
。provider-id
选项配置 ExternalID
,启动后会自动给 Node 添加 taint node.cloudprovider.kubernetes.io/uninitialized=NoSchedule
。cloud-controller-manager
在收到 Node 注册的事件后再次初始化 Node 配置,添加 zone、类型等信息,并删除上一步 Kubelet 自动创建的 taint。cloud-controller-manager
服务,云提供商可以构建自己的 cloud-controller-manager
而无须修改 Kubernetes 核心代码cloud-controller-manager
,解耦了 Controller Manager 与 Cloud Controller 的代码逻辑cloud-controller-manager
cloud-controller-manager
中导入新的 cloudprovider:import "pkg/new-cloud-provider"
cloudprovider.InitCloudProvider("rancher", s.CloudConfigFile)
--cloud-provider=external
cloud-controller-manager