coreos-stack-bootstrap
coreos-stack-bootstrap copied to clipboard
Configure some level of self-healing for core components
Ideally the kube-apiserver
will have some sort of watch-dog/babysitter that keeps it running. I see a few options:
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
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
- distinct user data for
kube-apiserver
host, or - single-instance provisioning after boot, by placing the manifest on the chosen host