Usage of kube-scheduler and kube-controller-manager server ports

3/20/2019

I'm a bit confused about communication model between K8s master components. How does kube-apiserver, kube-controller-manager and kube-scheduler communicate with each other?

According to official doc, it seems to me that only kube-controller-manager and kube-scheduler connects to kube-apiserver, but not the other way around. However, I found there were bunch of server-flavored flags provided by both kube-controller-manager and kube-scheduler, such as --bind-address or --client-ca-file. So they are both definitely acting as a server too, which I can further confirm using curl localhost:10251/healthz and curl localhost:10252/healthz.

So the big question mark in my head now is that, what functionalities were provided by kube-controller-manager's and kube-scheduler's server ports? And were they used by kube-apiserver?

-- fengye87
kubernetes

1 Answer

3/20/2019

They are not used by kube-apiserver.

That is health check ports to export current health status and metrics. --client-ca-file is an option for outgoing connections.

Here is a related path of a source code of kube-scheduler.

-- Anton Kostenko
Source: StackOverflow