hamilyon2 4 days ago

For the uninitiated: how does k8s handle OS upgrades? If development moves to next version of Debian, because it should eventually, are upgrades, for example, 2x harder vs docker-compose? 2x easier? About the same? Is it even right question to ask?

3
JanMa 4 days ago

It doesn't. The usual approach is to create new nodes with the updated OS, migrate all workloads over and then throw away the old ones

Thiez 4 days ago

Your cluster consists of multiple machines ('nodes'). Upgrading is as simple as adding a new, upgraded node, then evicting everything from one of the existing nodes, then take it down. Repeat until every node is replaced.

Downtime is the same as with a deploment, so if you run at least 2 copies of everything there should be no downtime.

As for updating the images of your containers, you build them again with the newer base image, then deploy.

ianburrell 3 days ago

Are you talking about upgrades of the host OS or the base of the image? I think you are talking about the latter. Others covered updating the host.

Upgrades of the Docker image are done by pushing a new image, and updating the Deployment to use the new image, and applying it. Kubernetes will start new containers for the new image, and when they are running, kill off the old containers. There should be no interruption. It isn't any different than normal deploy.