5 ms·
Very fair, although with managed services which are increasingly available, you don't typically need to think about CSI or CNI.
by freedomben 2y ago
Very fair, although with managed services which are increasingly available, you don't typically need to think about CSI or CNI.
- deleted 2y ago[deleted]
- cuu508 2y agoHence > Kubernetes is not the first thing that comes to mind when I think of "understanding where their code is running and what it's doing"...
- remram 2y agoCSI and CNI do about as much magic as `docker volume` and `docker network`. People act like their web framework and SQL connection pooler and stuff are so simple, while Kubernetes is complex and totally inscrutable for mortals, and I don't get it. It has a couple of moving parts, but it is probably simpler overall than SystemD.
- formerly_proven 2y agoI was genuinely surprised that k8s turned out to actually be pretty straightforward and very sensible after years of never having anything to do with it and just hearing about it on the net. Turns out opinions are just like after all. That being said, what people tend to build on top of that foundation is a somewhat different story.
- abustamam 2y agoI asked chatgpt the other day to explain to me Kubernetes. I still don't understand it. Can you share with me what clicked with you, or resources that helped you?
- amazingman 2y agoController in charge of a specific type of object watches a database table representing the object type. Database table represents the desired state of things. When entries to the table are CRUD-ed, that represents a change to the desired state of things. Controller interacts with the larger system to bring the state of things into alignment with the new desired state of things. "The larger system" is more controllers in charge of other object types, doing the same kind of work for its object types There is an API implemented for CRUD-ing each object type. The API specification (model) represents something important to developers, like a group of containers (Pod), a load balancer with VIP (Service), a network volume (PersistentVolume), and so on. Hand wave hand wave, Lego-style infrastructure. None of the above is exactly correct (e.g. the DB is actually a k/v store), but it should be conceptually correct.
- DrFalkyn 2y agoIs there only a single controller ? What happens if goes down? If multiple controllers, how do they coordinate ?
- chronid 2y agoThe k/v store offers primitives to make that happen, but for non-critical controllers you don't want to deal with things like that they can go down and will be restarted (locally by kubelet/containerd) or rescheduled. Whatever resource they monitor will just not be touched until they get restarted.
- amazingman 2y ago>Is there only a single controller ? No, there are many controllers. Each is in charge of the object types it is in charge of. >What happens if [it] goes down? CRUD of the object types it manages have no effect until the controller returns to service. >If multiple controllers, how do they coordinate ? The database is the source of truth. If one controller needs to "coordinate" with another, it will CRUD entries of the object types those other controllers are responsible for. e.g. Deployments beget ReplicaSets beget Pods.
- DrFalkyn 2y agoit’s not k8s. It’s distrusted systems Unfortunately people (cough managers) think k8s is some magic that makes distrusted systems problems go away, and automagically enables unlimited scalability In reality it just makes the mechanics a little easier and centralized Getting distributed systems right is usually difficult
- jrockway 2y ago> People act like their web framework and SQL connection pooler and stuff are so simple I'm just sitting here wondering why we need 100 billion transistors to move a piece of tape left and right ;)