概要
minikube環境でKubernetesの新バージョンのv1.30.0を使ってみたいと思ったが、
minikubeのバージョンが古くてサポート外だったので、
サポートしているバージョンにminikubeをアップグレードしてみました。
環境
- minikube version: v1.32.0 ※アップグレード前
- Ubuntu 22.04.4 LTS(WSL)
前提
以下方法でminikubeをセットアップしていること
minikubeのバージョンをアップグレードしてみる
- 現行バージョン確認
tech-0222@MSI:~$ minikube version
minikube version: v1.32.0
commit: 8220a6eb95f0a4d75f7f2d7b14cef975f050512d
tech-0222@MSI:~$
- minikubeの最新バージョンを確認
tech-0222@MSI:~$
tech-0222@MSI:~$ minikube update-check
CurrentVersion: v1.32.0
LatestVersion: v1.33.1
tech-0222@MSI:~$
- 一旦起動しているClusterを停止してからアップグレードしたいと思いますので、起動しているClusterを停止します。
- よく見ると「minikube 1.33.1 is available! Download it」と最新バージョンのお知らせが出てますね
#Clusterの確認
tech-0222@MSI:~$ minikube profile list
🎉 minikube 1.33.1 is available! Download it: https://github.com/kubernetes/minikube/releases/tag/v1.33.1
💡 To disable this notice, run: 'minikube config set WantUpdateNotification false'
|--------------|-----------|------------|--------------|------|---------|---------|-------|--------|
| Profile | VM Driver | Runtime | IP | Port | Version | Status | Nodes | Active |
|--------------|-----------|------------|--------------|------|---------|---------|-------|--------|
| minikube | docker | docker | 192.168.58.2 | 8443 | v1.28.3 | Stopped | 1 | * |
| test | docker | docker | 192.168.67.2 | 8443 | v1.28.3 | Running | 1 | |
|--------------|-----------|------------|--------------|------|---------|---------|-------|--------|
tech-0222@MSI:~$
#StatusがRunningのClusterを停止
tech-0222@MSI:~$ minikube stop -p test
✋ Stopping node "test" ...
🛑 Powering off "test" via SSH ...
🛑 1 node stopped.
tech-0222@MSI:~$
#確認
tech-0222@MSI:~$ minikube profile list
|--------------|-----------|------------|--------------|------|---------|---------|-------|--------|
| Profile | VM Driver | Runtime | IP | Port | Version | Status | Nodes | Active |
|--------------|-----------|------------|--------------|------|---------|---------|-------|--------|
| minikube | docker | docker | 192.168.58.2 | 8443 | v1.28.3 | Stopped | 1 | * |
| test | docker | docker | 192.168.67.2 | 8443 | v1.28.3 | Stopped | 1 | |
|--------------|---
- minikubeのバージョンをアップグレードしてみる
- 注意事項
- インストールをこれで実施していれば、同じ方法でアップグレードができるみたいです。
- 注意事項
tech-0222@MSI:tmp$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 27.6M 100 27.6M 0 0 6584k 0 0:00:04 0:00:04 --:--:-- 6586k
tech-0222@MSI:tmp$ sudo dpkg -i minikube_latest_amd64.deb
[sudo] password for tech-0222:
(Reading database ... 45150 files and directories currently installed.)
Preparing to unpack minikube_latest_amd64.deb ...
Unpacking minikube (1.33.1-0) over (1.32.0-0) ...
Setting up minikube (1.33.1-0) ...
tech-0222@MSI:tmp$
- アップグレード後のminikubeのバージョンを確認する
#最新バージョンのアップグレードOK
tech-0222@MSI:tmp$ minikube version
minikube version: v1.33.1
commit: 5883c09216182566a63dff4c326a6fc9ed2982ff
tech-0222@MSI:tmp$
tech-0222@MSI:tmp$ minikube update-check
CurrentVersion: v1.33.1
LatestVersion: v1.33.1
tech-0222@MSI:tmp$
#既存Clusterも特に消えることなく大丈夫そう
tech-0222@MSI:tmp$ minikube profile list
|--------------|-----------|------------|--------------|------|---------|---------|-------|----------------|--------------------|
| Profile | VM Driver | Runtime | IP | Port | Version | Status | Nodes | Active Profile | Active Kubecontext |
|--------------|-----------|------------|--------------|------|---------|---------|-------|----------------|--------------------|
| minikube | docker | docker | 192.168.58.2 | 8443 | v1.28.3 | Stopped | 1 | * | |
| test | docker | docker | 192.168.67.2 | 8443 | v1.28.3 | Stopped | 1 | | |
|--------------|-----------|------------|--------------|------|---------|---------|-------|----------------|--------------------|
tech-0222@MSI:tmp$
- minikubeのClusterで使えるKubernetesバージョンを確認する
- バージョン一覧に「v1.30.0」が表示されていればOK
tech-0222@MSI:tmp$ minikube config defaults kubernetes-version
* v1.30.0 ★これ★
* v1.30.0-rc.2
* v1.30.0-rc.1
* v1.30.0-rc.0
* v1.30.0-beta.0
* v1.30.0-alpha.3
* v1.30.0-alpha.2
* v1.30.0-alpha.1
* v1.29.4
* v1.29.3
* v1.29.2
* v1.29.1
* v1.29.0
* v1.29.0-rc.2
* v1.29.0-rc.1
* v1.29.0-rc.0
* v1.29.0-alpha.3
* v1.29.0-alpha.2
* v1.29.0-alpha.1
* v1.28.9
* v1.28.8
* v1.28.7
* v1.28.6
* v1.28.5
* v1.28.4
* v1.28.3
* v1.28.2
* v1.28.1
* v1.28.0
* v1.28.0-rc.1
* v1.28.0-rc.0
* v1.28.0-beta.0
* v1.28.0-alpha.4
* v1.28.0-alpha.3
* v1.28.0-alpha.2
* v1.28.0-alpha.1
* v1.27.13
* v1.27.12
* v1.27.11
* v1.27.10
* v1.27.9
* v1.27.8
* v1.27.7
* v1.27.6
* v1.27.5
* v1.27.4
* v1.27.3
* v1.27.2
* v1.27.1
* v1.27.0
* v1.27.0-rc.1
* v1.27.0-rc.0
* v1.27.0-beta.0
* v1.27.0-alpha.3
* v1.27.0-alpha.2
* v1.27.0-alpha.1
* v1.26.15
* v1.26.14
* v1.26.13
* v1.26.12
* v1.26.11
* v1.26.10
* v1.26.9
* v1.26.8
* v1.26.7
* v1.26.6
* v1.26.5
* v1.26.4
* v1.26.3
* v1.26.2
* v1.26.1
* v1.26.0
* v1.26.0-rc.1
* v1.26.0-rc.0
* v1.26.0-beta.0
* v1.26.0-alpha.3
* v1.26.0-alpha.2
* v1.26.0-alpha.1
* v1.25.16
* v1.25.15
* v1.25.14
* v1.25.13
* v1.25.12
* v1.25.11
* v1.25.10
* v1.25.9
* v1.25.8
* v1.25.7
* v1.25.6
* v1.25.5
* v1.25.4
* v1.25.3
* v1.25.2
* v1.25.1
* v1.25.0
* v1.25.0-rc.1
* v1.25.0-rc.0
* v1.25.0-beta.0
* v1.25.0-alpha.3
* v1.25.0-alpha.2
* v1.25.0-alpha.1
* v1.24.17
* v1.24.16
* v1.24.15
* v1.24.14
* v1.24.13
* v1.24.12
* v1.24.11
* v1.24.10
* v1.24.9
* v1.24.8
* v1.24.7
* v1.24.6
* v1.24.5
* v1.24.4
* v1.24.3
* v1.24.2
* v1.24.1
* v1.24.0
* v1.24.0-rc.1
* v1.24.0-rc.0
* v1.24.0-beta.0
* v1.24.0-alpha.4
* v1.24.0-alpha.3
* v1.24.0-alpha.2
* v1.24.0-alpha.1
* v1.23.17
* v1.23.16
* v1.23.15
* v1.23.14
* v1.23.13
* v1.23.12
* v1.23.11
* v1.23.10
* v1.23.9
* v1.23.8
* v1.23.7
* v1.23.6
* v1.23.5
* v1.23.4
* v1.23.3
* v1.23.2
* v1.23.1
* v1.23.0
* v1.23.0-rc.1
* v1.23.0-rc.0
* v1.23.0-beta.0
* v1.23.0-alpha.4
* v1.23.0-alpha.3
* v1.23.0-alpha.2
* v1.23.0-alpha.1
* v1.22.17
* v1.22.16
* v1.22.15
* v1.22.14
* v1.22.13
* v1.22.12
* v1.22.11
* v1.22.10
* v1.22.9
* v1.22.8
* v1.22.7
* v1.22.6
* v1.22.5
* v1.22.4
* v1.22.3
* v1.22.2
* v1.22.1
* v1.22.0
* v1.22.0-rc.0
* v1.22.0-beta.2
* v1.22.0-beta.1
* v1.22.0-beta.0
* v1.22.0-alpha.3
* v1.22.0-alpha.2
* v1.22.0-alpha.1
* v1.21.14
* v1.21.13
* v1.21.12
* v1.21.11
* v1.21.10
* v1.21.9
* v1.21.8
* v1.21.7
* v1.21.6
* v1.21.5
* v1.21.4
* v1.21.3
* v1.21.2
* v1.21.1
* v1.21.0
* v1.21.0-rc.0
* v1.21.0-beta.1
* v1.21.0-beta.0
* v1.21.0-alpha.3
* v1.21.0-alpha.2
* v1.21.0-alpha.1
* v1.20.15
* v1.20.14
* v1.20.13
* v1.20.12
* v1.20.11
* v1.20.10
* v1.20.9
* v1.20.8
* v1.20.7
* v1.20.6
* v1.20.5
* v1.20.4
* v1.20.3
* v1.20.2
* v1.20.1
* v1.20.0
tech-0222@MSI:tmp$
- minikubeでKubernetesのバージョンを1.30.0 で指定して新規Clusterを作成してみる
tech-0222@MSI:tmp$
tech-0222@MSI:tmp$ minikube start -p k8s-ver-1-30 --kubernetes-version 1.30.0
😄 [k8s-ver-1-30] minikube v1.33.1 on Ubuntu 22.04 (amd64)
✨ Automatically selected the docker driver. Other choices: kvm2, qemu2, ssh
📌 Using Docker driver with root privileges
👍 Starting "k8s-ver-1-30" primary control-plane node in "k8s-ver-1-30" cluster
🚜 Pulling base image v0.0.44 ...
💾 Downloading Kubernetes v1.30.0 preload ...
> preloaded-images-k8s-v18-v1...: 342.90 MiB / 342.90 MiB 100.00% 4.99 Mi
> gcr.io/k8s-minikube/kicbase...: 481.58 MiB / 481.58 MiB 100.00% 5.61 Mi
🔥 Creating docker container (CPUs=2, Memory=3900MB) ...
🐳 Preparing Kubernetes v1.30.0 on Docker 26.1.1 ...
▪ Generating certificates and keys ...
▪ Booting up control plane ...
▪ Configuring RBAC rules ...
🔗 Configuring bridge CNI (Container Networking Interface) ...
🔎 Verifying Kubernetes components...
▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟 Enabled addons: storage-provisioner, default-storageclass
❗ /usr/bin/kubectl is version 1.28.2, which may have incompatibilities with Kubernetes 1.30.0.
▪ Want kubectl v1.30.0? Try 'minikube kubectl -- get pods -A'
🏄 Done! kubectl is now configured to use "k8s-ver-1-30" cluster and "default" namespace by default
tech-0222@MSI:tmp$
#問題なく起動していることを確認!
tech-0222@MSI:tmp$ minikube profile list
|--------------|-----------|------------|--------------|------|---------|---------|-------|----------------|--------------------|
| Profile | VM Driver | Runtime | IP | Port | Version | Status | Nodes | Active Profile | Active Kubecontext |
|--------------|-----------|------------|--------------|------|---------|---------|-------|----------------|--------------------|
| k8s-ver-1-30 | docker | docker | 192.168.76.2 | 8443 | v1.30.0 | Running | 1 | | * |
| minikube | docker | docker | 192.168.58.2 | 8443 | v1.28.3 | Stopped | 1 | * | |
| test | docker | docker | 192.168.67.2 | 8443 | v1.28.3 | Stopped | 1 | | |
|--------------|-----------|------------|--------------|------|---------|---------|-------|----------------|--------------------|
tech-0222@MSI:tmp$
- Kubernetesのバージョン1.30.0 で起動したClusterの状態をkubectl コマンドで確認してみる
- 問題なさそう
tech-0222@MSI:tmp$ minikube -p k8s-ver-1-30 kubectl -- get po -A
> kubectl.sha256: 64 B / 64 B [-------------------------] 100.00% ? p/s 0s
> kubectl: 49.07 MiB / 49.07 MiB [-------------] 100.00% 5.30 MiB p/s 9.5s
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-7db6d8ff4d-glfbt 1/1 Running 0 19m
kube-system etcd-k8s-ver-1-30 1/1 Running 0 20m
kube-system kube-apiserver-k8s-ver-1-30 1/1 Running 0 20m
kube-system kube-controller-manager-k8s-ver-1-30 1/1 Running 0 20m
kube-system kube-proxy-skmmd 1/1 Running 0 19m
kube-system kube-scheduler-k8s-ver-1-30 1/1 Running 0 20m
kube-system storage-provisioner 1/1 Running 0 20m
tech-0222@MSI:tmp$
#想定通りのバージョンが使えている
tech-0222@MSI:tmp$ minikube -p k8s-ver-1-30 kubectl -- version
Client Version: v1.30.0
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.30.0
tech-0222@MSI:tmp$
-
まとめ
- minikubeのバージョンをアップグレードしたことはありませんでしたが、かなり簡単にアップグレードできました。また、minikube profile list 実行時に最新バージョンをお知らせしてくれるのは地味に嬉しいですね。
-
参考にしたドキュメント