Kubernetes upgrades used to terrify me. Then I learned to do them boringly. Here's the process.

Before the upgrade

1. Read the release notes. Every minor version. Check the 'removed APIs' and 'breaking changes' sections. Most Kubernetes outages come from someone skipping this.

2. Test in a non-prod cluster first. An identical cluster, not a toy one. Run your actual workloads. Let them bake for a week.

3. Deprecated API audit. Use pluto or kubent to find any manifests using deprecated APIs. Fix them before the upgrade, not during.