kubectrl と minikube を Ubuntu20.04LTS にインストールし、cluster を起動・停止する - aktnk/til GitHub Wiki

実現したいこと

  • minikubeを使い、Kubernetesクラスタを起動・停止する

(前提条件)

  • docker がインストールされ、使用可能な状態であること

kubectl v1.33のインストール

Install using native package managementに従い下記のようにインストールする

  1. 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
    $
    
  2. 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
    $
    
  3. 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) ...
    $
    
  4. 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に従い、下記のようにインストールする

  1. 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) ...
    $
    
  2. minikubeのインストール確認
    $ which minikube
    /usr/bin/minikube
    $ minikube version
    minikube version: v1.36.0
    commit: f8f52f5de11fc6ad8244afac475e1d0f96841df1-dirty
    $
    

Kubernetesクラスタを起動する

  1. 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
    
  2. kubectlでserverバージョンが指定したバージョンであることを確認
    $ kubectl version
    Client Version: v1.33.1
    Kustomize Version: v5.6.0
    Server Version: v1.33.0
    $
    

Kubernetes クラスタを停止する

  1. minikube stopで停止
    $ minikube stop
    ✋  Stopping node "minikube"  ...
    🛑  Powering off "minikube" via SSH ...
    🛑  1 node stopped.
    $