One of the most confusing things I encountered has been things like the
direct references to kube-proxy
and kubelete
compiled Go binaries in
Kelsey Hightower’s “Hard Way” tutorial. It wasn’t until I read that
kube-proxy
is actually deployed as a DaemonSet by kubeadm
even
though it could be (technically) deployed by installing and running the
kube-proxy
command all by itself that I realized what was going on and
why so many people are so fucking confused.
Pretty much every major component is a Go program that has been
wrapped into a Pod. This goes for everything in the control-plane
except etcd
(which you might not want to deploy on the same machine as
the rest of your control-plane anyway). This is why all the diagrams
showing these components are always so non-precise. There’s no precise
indication what a thing actually is. This is why when I do a diagram of
everything every component in the diagram will have a key and a specific
type:
💡 This reminds me that I really need to just fucking read all the Kubernetes code, or at least scan it. There’s no way to know what is actually going on without having to sift through someone else’s lame abstractions and explanation and going directly to the code. Learn Go people, learn Go.
Related:
Tags:
#k8s #learning #concepts #tips