coreos-stack-bootstrap icon indicating copy to clipboard operation
coreos-stack-bootstrap copied to clipboard

Configure some level of self-healing for core components

Open emmanuel opened this issue 9 years ago • 2 comments

Ideally the kube-apiserver will have some sort of watch-dog/babysitter that keeps it running. I see a few options:

emmanuel avatar Aug 08 '15 22:08 emmanuel

A. Run under fleet

Submit kube-apiserver.service to fleet per normal, ensuring that only a single instance is running at a time in the cluster

Pros: fleet will restart/reschedule if process or host dies. can co-schedule helper processes (e.g., DNS registration).

Cons: kubelet depends on kube-apiserver address, so I'm unsure of implications of delaying kube-apiserver startup till fleet

emmanuel avatar Aug 08 '15 22:08 emmanuel

B. Run under kubelet

Place manifest for pod in directory watched by kubelet --config /etc/kubernetes/manifests (e.g., /etc/kubernetes/manifests/kube-apiserver.yaml)

Pros: apiserver will be visible as a kubernetes component (stats, logs, etc)

Cons: requires hand-picking one host to be special, either via

  1. distinct user data for kube-apiserver host, or
  2. single-instance provisioning after boot, by placing the manifest on the chosen host

emmanuel avatar Aug 08 '15 22:08 emmanuel