How to upgrade minikube?
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.
Introduction
Upgrading Minikube is more than replacing one binary. You also need to validate profile startup, Kubernetes version compatibility, and addon behavior after restart. A predictable process upgrades Minikube first, then checks each active profile and related tooling.
Core Sections
1. Capture pre-upgrade cluster context
Before changing anything, record current Minikube and Kubernetes state. This gives you a baseline for troubleshooting.
If you use multiple profiles for different projects, list all active profile names and drivers.
2. Upgrade the Minikube binary
Use your existing installation channel where possible.
Homebrew:
Chocolatey:
Manual Linux install:
Verify binary version after install:
3. Understand Minikube versus Kubernetes version upgrades
Updating Minikube does not automatically update Kubernetes version inside existing profiles. If you need newer Kubernetes, set it explicitly when starting or recreating profile.
This distinction is important when testing version-dependent APIs or admission behavior.
4. Restart and validate each active profile
Restart each profile you care about and confirm node and system pod health.
If startup fails, inspect logs immediately:
Driver mismatches and stale VM state are frequent causes after major upgrades.
5. Verify addons and ingress behavior
If your local workflow relies on addons such as ingress or metrics-server, validate them explicitly after upgrade.
Do not assume addon status from previous run remains valid after runtime or Kubernetes version changes.
6. Handle profile recreation when state is broken
For disposable development clusters, deleting and recreating profile is often faster than deep repair.
For valuable local test data, export needed manifests before deleting:
7. Team-level compatibility discipline
When teams share local setup docs, publish tested version combinations. A compact matrix avoids onboarding drift.
Recommended doc fields:
- tested Minikube version
- tested Kubernetes version
- required driver
- required addons
Keeping this matrix current prevents repeated environment debugging across developers.
8. Post-upgrade tooling checks
Minikube upgrades can surface incompatibilities in local ecosystem tools. Validate:
kubectlclient compatibility- Helm chart install behavior
- local image build and load workflow
Example quick check:
These checks catch subtle breakage before daily development resumes.
9. Keep startup configuration explicit
If your team depends on specific CPU, memory, or disk settings, store them in start commands or profile configuration instead of relying on defaults. Defaults can shift between Minikube versions and produce different behavior across machines. Explicit resource settings make performance and startup behavior more predictable after upgrades.
Common Pitfalls
- Assuming Kubernetes version changed automatically after Minikube binary upgrade.
- Validating only default profile while other profiles remain broken.
- Ignoring driver compatibility after host virtualization changes.
- Forgetting addon verification and discovering failures mid-development.
- Recreating profiles without exporting local manifests that matter.
Summary
- Upgrade Minikube binary first, then validate profile runtime behavior.
- Treat Kubernetes version changes as a separate explicit action.
- Recheck node readiness, addons, and driver compatibility after restart.
- Use profile recreation for broken disposable clusters.
- Maintain a team compatibility matrix to reduce setup drift.
Related reading
- How to use an init container to check if MySQL is ready for connections?
- How to use ConfigMap configuration with Helm NginX Ingress controller - Kubernetes
- How to use helm with token based authentication system on EKS
- How to use imagePullSecrets in Helm 3
- How to use kubectl command instead of sudo kubectl
- How to use kubectl cp to copy files automatically from a local system to kubernetes Pods with list filter
- How to use nginx ingress TCP service on different namespace
- How to use NodePort with kind?

System Design Fundamentals
Build a strong foundation in designing scalable, reliable distributed systems.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.