mirror of https://github.com/k3s-io/k3s
![]() Automatic merge from submit-queue (batch tested with PRs 45508, 44258, 44126, 45441, 45320) cloud initialize node in external cloud controller @thockin This PR adds support in the `cloud-controller-manager` to initialize nodes (instead of kubelet, which did it previously) This also adds support in the kubelet to skip node cloud initialization when `--cloud-provider=external` Specifically, Kubelet 1. The kubelet has a new flag called `--provider-id` which uniquely identifies a node in an external DB 2. The kubelet sets a node taint - called "ExternalCloudProvider=true:NoSchedule" if cloudprovider == "external" Cloud-Controller-Manager 1. The cloud-controller-manager listens on "AddNode" events, and then processes nodes that starts with that above taint. It performs the cloud node initialization steps that were previously being done by the kubelet. 2. On addition of node, it figures out the zone, region, instance-type, removes the above taint and updates the node. 3. Then periodically queries the cloudprovider for node addresses (which was previously done by the kubelet) and updates the node if there are new addresses ```release-note NONE ``` |
||
---|---|---|
.. | ||
clicheck | ||
cloud-controller-manager | ||
gendocs | ||
genkubedocs | ||
genman | ||
genslateyaml | ||
genswaggertypedocs | ||
genutils | ||
genyaml | ||
gke-certificates-controller | ||
hyperkube | ||
kube-apiserver | ||
kube-controller-manager | ||
kube-proxy | ||
kubeadm | ||
kubectl | ||
kubelet | ||
kubemark | ||
libs/go2idl | ||
linkcheck | ||
mungedocs | ||
BUILD | ||
OWNERS |