minikube on Ubuntu(VirtualBox) 導入

プログラミング
この記事は約4分で読めます。

 

前回(Kubernetes公式サイトを一度読むことの勧め)で、Kubernetesの公式サイトを一通り眺めた。今回は、minikubeが簡単にVirtualBox上のubuntuに乗ったのでその記録。といってもほぼ公式サイトそのままやればできます。


インストール

公式githubサイト:https://github.com/kubernetes/minikube

基本的には、公式が示している以下を実行すればよい。しかし前提として、curl(取得するため)とdockerが入っていないといけないため、そちらは前もって導入が必要です。

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube
curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl

export MINIKUBE_WANTUPDATENOTIFICATION=false
export MINIKUBE_WANTREPORTERRORPROMPT=false
export MINIKUBE_HOME=$HOME
export CHANGE_MINIKUBE_NONE_USER=true
mkdir $HOME/.kube || true
touch $HOME/.kube/config

export KUBECONFIG=$HOME/.kube/config
sudo -E ./minikube start --vm-driver=none

# this for loop waits until kubectl can access the api server that Minikube has created
for i in {1..150}; do # timeout for 5 minutes
   ./kubectl get po &> /dev/null
   if [ $? -ne 1 ]; then
      break
  fi
  sleep 2
done

# kubectl commands are now able to interact with Minikube cluster

やっていることは以下。

  • minikubeのバイナリ(minikube-linux-amd64)を取得
  • 実行権限付与(chmod +x)
  • kubectlコマンドのバイナリ(bin/linux/amd64/kubectl)を取得
  • 実行権限付与
  • 4つの環境変数をexort
    • MINIKUBE_WANTUPDATENOTIFICATION
    • MINIKUBE_WANTREPORTERRORPROMPT
    • MINIKUBE_HOME
    • CHANGE_MINIKUBE_NONE_USER
  • $HOME/.kubeファイルがなければ作り、さらに$HOME/.kube/configを作成
  • $HOME/.kube/configをKUBECONFIG環境変数に設定
  • minikubeを –vm-driver=noneで起動
  • kubectlがMinikubeが作成したapiサーバにアクセスできるようになるまで待機(for文)

ちょっと使ってみる

# minikubeが動いているか確認
$ sudo minikube status
minikube: Running
cluster: Running
kubectl: Correctly Configured: pointing to minikube-vm at 10.0.2.15
# dashboardの起動
sudo minikube dashboard
→ 'http://10.0.2.15:30000'こんな表示がなされて、ローカルにダッシュボードが立ち上がる

立ち上がった時のダッシュボード画面(12時間前に立ち上げたのがばれた)

使える機能

https://kubernetes.io/docs/getting-started-guides/minikube/によると、minikubeはkubernetesの機能のうち以下をサポートしている(利用できる)。

  • DNS
  • NodePorts
  • ConfigMaps and Secrets
  • Dashboards
  • Container Runtime: Docker, rkt and CRI-O
  • Enabling CNI (Container Network Interface)
  • Ingress

ConfigMapsとSecretsとかはこの環境で練習できそう。minikubeなら適当に試してだめなら消せばよいお手軽感はよいと思う。

コメント

タイトルとURLをコピーしました