-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add documentation about system socket #14
Comments
What needs documenting? Is this something another contributor could pick up? |
Mostly that it exists 😆 I would be happy to receive contributions on it (or anything else), but it's mostly in my brain at the moment! I'll brain dump here so you have context: The system socket serves two purposes:
Node ShutdownKubernetes' vanilla implementation of graceful node shutdown relies on systemd being present - it attempts to aquire an inhibit lock by talking over the dbus. kiOS has neither systemd, nor the dbus, so instead there is a much more basic unix socket which kubelet on kiOS is patched to use instead. Notable differences here is that (currently) while under systemd the calling process has to request a lock for x seconds, and systemd can be configured to refuse such a request, kiOS does not care and is instead happy to trust kubelet to do things properly. As a result, kubelet's own RestartsAs kiOS core's ethos is effectively just config on disk, or nothing, for most contexts cloud / environment specific bootstrapping is done via a bootstrap container. The flow being:
This could be implemented by just giving bootstrap containers access to the hostPID, but that's a bit horrible, so instead the kiOS system socket also supports a command to restart kubelet / cri-o, allowing the bootstrap container flow without risking them smashing up the rest of the system too much! Commands and eventsThe system socket accepts the following commands:
The system socket sends out the following events:
Pitch LevelOne of the biggest challenges I have with some of kiOS' documentation is that I'm not 100% sure what audience to pitch things at. There are many people who just want kubernetes clusters to "just work ™️" so are less interested in the intricacies of container runtimes / bootstrap containers etc. There are others who may be interested, but are unaware of the systemd graceful node shutdown / shutdown inhibit lock process or the role init normally plays in a system shutdown, so might not have the context to understand why / when the socket is useful. If you have any thoughts on the tone / level to pitch at, that would be very appreciated. |
No description provided.
The text was updated successfully, but these errors were encountered: