Kubernetes There are so many pieces and aspects to this product it is hard to narrow the scope of this paper.
Distribution These are exactly like Linux distrobutions, where they all share the same “kernel” of options, while achieving them in different ways.
rke2 k3s k0s minikube Tools Common tools handle a lot of differnet aspects, but these are the most common (That I’ve seen)
flux This is for syncronizing your envrionment to a configuration repository. One Repo can hold many enviroments and act as a package manager. Because of this, a “bootstrapping” step is required. argocd This is a tool for deploying your application to the cluster. It works in a lot of a the same ways as Flux, but seems more focused on the application side rather than the configuration of the cluster AND applications. helm This provides a templating scheme to create “packages” that can be deployed with either of the options above, or even itself. Helm offers the ability to deploy from its binary and manage the application from there. kubectl This is the tool to control your cluster in various ways directly. Turn off pods, grab logs, very similar to running “docker” or “podman” istioctl Important Files /home/user/.config/kubeconfig This holds all of the connection data to one or more of your clusters in an environment. Rancher can help create this file, and most distros have a file stored somewhere for this. Most of the above tools refernce this file in order to work with your cluster. Kustomizations These files are either created by the cluster or by hand, then they are meant to directly apply to the cluster. My way of thinking of it is a direct binary. Nothing is managing this file except yourself, has complete access to the system, and a sure fire way to drift your cluster from a desired state to a rogue state.