前回(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なら適当に試してだめなら消せばよいお手軽感はよいと思う。
コメント