kubectrl と minikube を Ubuntu20.04LTS にインストールし、cluster を起動・停止する - aktnk/til GitHub Wiki
実現したいこと
- minikubeを使い、Kubernetesクラスタを起動・停止する
(前提条件)
- docker がインストールされ、使用可能な状態であること
kubectl v1.33のインストール
Install using native package managementに従い下記のようにインストールする
- Kubernetesパッケージリポジトリの公開鍵のインストール
$ curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg [sudo] password for aktnk: $ sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg $
- Kubernetesパッケージリポジトリリストを追加
$ echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ / $ sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list $
- kubectlをインストール
$ sudo apt update Get:1 file:/var/cuda-repo-wsl-ubuntu-11-8-local InRelease [1575 B] Get:2 file:/var/cudnn-local-repo-ubuntu2004-8.6.0.163 InRelease [1575 B] <省略> Get:5 https://prod-cdn.packages.k8s.io/repositories/isv:/kubernetes:/core:/stable:/v1.33/deb InRelease [1186 B] Get:9 https://prod-cdn.packages.k8s.io/repositories/isv:/kubernetes:/core:/stable:/v1.33/deb Packages [3943 B] Hit:10 http://archive.ubuntu.com/ubuntu focal-backports InRelease Fetched 192 kB in 2s (102 kB/s) Reading package lists... Done Building dependency tree Reading state information... Done 45 packages can be upgraded. Run 'apt list --upgradable' to see them. $ sudo apt install -y kubectl Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: kubectl 0 upgraded, 1 newly installed, 0 to remove and 45 not upgraded. Need to get 11.7 MB of archives. After this operation, 60.2 MB of additional disk space will be used. Get:1 https://prod-cdn.packages.k8s.io/repositories/isv:/kubernetes:/core:/stable:/v1.33/deb kubectl 1.33.1-1.1 [11.7 MB] Fetched 11.7 MB in 1s (15.4 MB/s) Selecting previously unselected package kubectl. (Reading database ... 73893 files and directories currently installed.) Preparing to unpack .../kubectl_1.33.1-1.1_amd64.deb ... Unpacking kubectl (1.33.1-1.1) ... Setting up kubectl (1.33.1-1.1) ... $
- kubecrlのインストール確認
$ which kubectl /usr/bin/kubectl $ kubectl version Client Version: v1.33.1 Kustomize Version: v5.6.0 The connection to the server localhost:8080 was refused - did you specify the right host or port? $
minikube のインストール
minikube startに従い、下記のようにインストールする
- Debian packageを使い、x86-64 Linux用minikubeのstable版をインストール
$ 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 39.0M 100 39.0M 0 0 16.5M 0 0:00:02 0:00:02 --:--:-- 16.5M $ sudo dpkg -i minikube_latest_amd64.deb Selecting previously unselected package minikube. (Reading database ... 73897 files and directories currently installed.) Preparing to unpack minikube_latest_amd64.deb ... Unpacking minikube (1.36.0-0) ... Setting up minikube (1.36.0-0) ... $
- minikubeのインストール確認
$ which minikube /usr/bin/minikube $ minikube version minikube version: v1.36.0 commit: f8f52f5de11fc6ad8244afac475e1d0f96841df1-dirty $
Kubernetesクラスタを起動する
- kubernetesのバージョンを先にインストールしたkubectlのバージョンに合わせて起動
$ minikube start --kubernetes-version=v1.33.0 😄 minikube v1.36.0 on Ubuntu 20.04 (kvm/amd64) ✨ Automatically selected the docker driver. Other choices: none, ssh 📌 Using Docker driver with root privileges 👍 Starting "minikube" primary control-plane node in "minikube" cluster 🚜 Pulling base image v0.0.47 ... 💾 Downloading Kubernetes v1.33.0 preload ... > preloaded-images-k8s-v18-v1...: 347.03 MiB / 347.03 MiB 100.00% 29.12 M > gcr.io/k8s-minikube/kicbase...: 502.26 MiB / 502.26 MiB 100.00% 8.40 Mi 🔥 Creating docker container (CPUs=2, Memory=3900MB) ... 🐳 Preparing Kubernetes v1.33.0 on Docker 28.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 🏄 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
- kubectlでserverバージョンが指定したバージョンであることを確認
$ kubectl version Client Version: v1.33.1 Kustomize Version: v5.6.0 Server Version: v1.33.0 $
Kubernetes クラスタを停止する
minikube stop
で停止$ minikube stop ✋ Stopping node "minikube" ... 🛑 Powering off "minikube" via SSH ... 🛑 1 node stopped. $