diff --git a/meeting-notes/2024-07-16-kubernetes-discussion.md b/meeting-notes/2024-07-16-kubernetes-discussion.md new file mode 100644 index 0000000..6bab450 --- /dev/null +++ b/meeting-notes/2024-07-16-kubernetes-discussion.md @@ -0,0 +1,66 @@ +​Problem +make available lots of open source packages. end-user doesn't have to know about how to do any of these things (install software, resilient storage, etc) +scale to 10k-1m users + +we've made some choices: NixOS, s3 storage, stateless as much as possible + +we need something that starts services, monitors the services, restarts, spins up extra nodes, etc. + +constraint: everything is "real" open-source + +"consider kubernetes?" + +kubernetes + +kubernetes fits +need some extra tools and glueing for making this available to the users + +tooling is 90% there + +tool recommendations to come + +like docker-compose but in the cloud + +reconcilliation loop: you specify a state "i want 2 instances of X at Y domain name" kubernetes takes care of everything + +applications slot into the reconcilliation loop to enforce the part of the state they manage + +most things already exist (DNS, networking, etc) + +master/worker: master is the machine that holds state. this is usually managed by the cloud provider + +there might be UIs similar to NixPanel already existing for kubernetes + +k3s vs. k8s +k8s: kubernetes +k3s: kubernetes but slimed down for playing around at home + +alternatives +nomad, but konstantinos does not have experience with it + +complexity +it's easy to stay limited to a smaller subset + +we don't want to introduce pre-existing components that bring along their own baggage (e.g. "matrix instance, but it's on alpine") + +why not? unite things under one tool; can make small changes without breaking everything; + +containerization +the pre-existing components are all running under docker containers +can override with a different container + +things that might be easier with nix +configuration +rolling updates +integrate with the outside world +manage storage + +network configurations +internally ipv4? +address space between nodes +public IPs +namespaces + +Kubernetes has the advantage of being familiar to people + +disadvantage is that it integrates into existing cloud providers (we want to move people away from google/amazon cloud)