4 ms·
> Kubernetes has great documentation so new starters can get up to speed more quickly even if they don’t have experience with it. I strongly disagree. What fee
by Hackbraten 5y ago
> Kubernetes has great documentation so new starters can get up to speed more quickly even if they don’t have experience with it.
I strongly disagree.
What feels easy for one developer may be super hard for others.
For me, the Kubernetes tutorial [1] and documentation [2] [3] feels borderline incomprehensible. It introduces several abstract concepts at once without telling me what they really mean. It raises more questions than it answers.
For example:
> Kubernetes coordinates a highly available cluster of computers that are connected to work as a single unit.
What does that even mean? Is that “single unit” the entire application? Or rather one component, e. g. the backend? You usually don’t have more than one service per container, right? So what exactly is the cluster here?
Why is there not a single example?
> The Control Plane is responsible for managing the cluster. The Control Plane coordinates all activities in your cluster, such as scheduling applications, maintaining applications' desired state, scaling applications, and rolling out new updates.
We haven’t even established what the cluster is and how it relates to an application but now we’re already talking about several applications? I feel entirely lost.
Ok, let’s look at another introductory page [2].
It says things like:
> The worker node(s) host the Pods that are the components of the application workload.
But it won’t tell me what a Pod is. So I click on the Pods link [3].
It says:
> A Pod (as in a pod of whales or pea pod) is a group of one or more containers, with shared storage and network resources, and a specification for how to run the containers. A Pod's contents are always co-located and co-scheduled, and run in a shared context. A Pod models an application-specific "logical host": it contains one or more application containers which are relatively tightly coupled. In non-cloud contexts, applications executed on the same physical or virtual machine are analogous to cloud applications executed on the same logical host.
I find that explanation outright hostile. Not a single example that a newbie can understand. Instead, a pile-up of more and more abstract concepts. I still have no clue how a Pod, a node, an application, its instances, its components and a cluster relates. I’m giving up here.
This documentation is abysmal. How can the blog author possibly call this thing well-documented?
[1]: https://kubernetes.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/ https://kubernetes.io/docs/tutorials/kubernetes-basics/creat...
[2]: https://kubernetes.io/docs/concepts/overview/components/ https://kubernetes.io/docs/concepts/overview/components/
[3]: https://kubernetes.io/docs/concepts/workloads/pods/ https://kubernetes.io/docs/concepts/workloads/pods/
- coopreme 5y ago> Not a single example that a newbie can understand. K8S (imo) isn’t for noobs. A car factory isn’t for noobs. Ideally you would want to understand how a car is made and works, how to run an assembly line, and how to build a factory communication systems before building and running the car factory. Similarly, you should understand how docker containers works, how to run infrastructure, and how to configure system networks and dns before building and running a K8S platform. The analogy may not be perfect… K8S is complicated but not impossibly so. Practice, working with something like Rancher, and classes will go along way to help understand it.
- Hackbraten 5y agoLet’s say my app has two containers: container A serves a static page for my SPA, and container B is a back-end that exposes an API for A. So which set of containers would be a pod here? And which would be the nodes? And what would be the cluster? (For the sake of the example, let’s assume that both A and B scale independently.)
- coopreme 5y agoThat would be two pods. Each pod would have one container. The nodes would be the underlying Infrastructure at the containers are running on, so you would have n number of worker nodes which are each a full system running either on premises, or in a cloud. K8S Will schedule those pods to run on those nodes… same as how docker containers run on your host system in development. The cluster is the K8S body representing the control plane nodes ( your mgmt computers running etcd and K8S backend ) and the worker nodes (where your pods, demons, statefull sets, containers, etc etc etc are running ). Now if you configure it right, those two pods are two deployments. You can scale those up and have a load balancer sitting in front of them. That load balancer will expose app and send in traffic to the stateless containers in the cluster.
- yawaramin 5y agoWhy not one pod with two containers?