kubectl --context k8s-uw1a-gcp -n customerx scale deploy someapp_worker --replicas 100
to make you appreciate what docker can do for you. kubectl --context k8s-uw1a-gcp -n customerx scale deploy someapp_worker --replicas 100
to make you appreciate what docker can do for you.But the truth is, most websites will happily run on a single dedicated machine you rent for a few hundred dollars. (OK, two, so you have a hot spare, if you so fancy.) This fact often gets overlooked despite even Stackexchange tweeted once or twice they could run their site with a single DB server. But: cloud! Kubernetes! Hype. Meh.
https://stackexchange.com/performance
Your average site wouldn't get anywhere near the same performance as them.
1. Almost all websites can run on a single dedicated server.
2. This is true for even something as big as Stackexchange which most sites are not.
3. If your site is indeed smaller than SE then that server is likely to be a few hundred dollars a month.
Also: getting a 512GB RAM server for 5-700 USD or so is definitely possible these days. But, again, most sites won't need anywhere near that. Based not only on information and belief ;) but first hand experience I sincerely doubt most sites would need more than 64GB.
What used to be a 30+ day procurement process became <7 days with VMs, became < 15 minutes with docker/kubernetes.
You can also do things that you would have never even considered doing prior to Docker - like run the application stack in the cloud, but launch one of the components (still in the same deployment) - on your laptop using tools like https://github.com/telepresenceio/telepresence.
This was possible, and done, long before kubernetes or docker. The frequent counter-argument I hear is that "kubernetes makes it easy" - which is often espoused by people that don't have to build or manage kubernetes in prod.
I do think that docker is very overhyped, but it does also solve some problems in a good way, even though it also creates new problems.
This is useful for workloads that need to scale on some metric other than CPU/MEM, e.g. request rate, worker queue length...
To care and maintain ?
Do you understand the kernel tuning and routing Google does to avoid the NAT hell you are going to run into when you manage k8s on your own ?
Maintain is basically just a `kubeadm upgrade` on all nodes + reboot (easily scriptable), after some updates get announced. OS Upgrades are done through container-linux-update-operator.
NAT is not a problem if you are below or equal to 50 nodes. Not sure if you run into problems if there are more nodes, thought. Also BGP+metallb is quite good.
(P.S.: openstack uses NAT heavily as well. and IPVS for k8s should fix most problems if you are running into problems)