minikubeのチュートリアル(WSL-Ubuntu20.04LTS)
minikubeを使ってkubernetesクラスタの簡単な使い方の流れを追ってみました。minikubeはローカル環境でKubernetesを簡単に実行するためのツールです。今回はWindowsに入っているWSL上でminikubeをインストールして、動作を確認しました。
動作環境
- OS : Windows10
- WSL2使用
- linuxイメージ : Ubuntu20.04LTS
手順
- 事前準備
- クラスターの起動
- minikube dashboardを開く
- Deploymentの作成
- Serviceの作成
- Addonの有効化
- 後片付け
目的
- minikubeへのサンプルアプリケーションのデプロイ
- アプリケーションの実行
- アプリケーションのログ確認
事前準備
-
minikubeコマンドのセットアップ
- kubernetes-minikube-setup
- minikubeのinstall
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb $ sudo dpkg -i minikube_latest_amd64.deb
-
kubectlコマンドのセットアップ
クラスターの起動
$ minikube start
Dashboardを開く
- 新しいターミナルを開いて下記のコマンドを実行する
# Start a new terminal, and leave this running. $ minikube dashboard
- 元のターミナルに戻る
Deploymentの作成
-
Podを扱うDeploymentを生成する。
# Run a test container image that includes a webserver $ kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.39 -- /agnhost netexec --http-port=8080
-
Deploymentの確認
$ kubectl get deployments
-
Podの確認
$ kubectl get pods
-
cluster eventsの確認
$ kubectl get events
-
kubectl configurationの確認
$ kubectl config view
-
Pod内のコンテナで実行されているapplication logsの確認
$ kubectl logs hello-node-xxx
Serviceの作成
-
デフォルトではPodはKubernetesクラスターの内部IPでしかアクセスできない。コンテナを外部からアクセスするにはPodをKubernetes Serviceとしてさらす必要がある。
-
Podを外部ネットワークに晒す
$ kubectl expose deployment hello-node --type=LoadBalancer --port=8080
- –type=LoadBalancer オプションによってServiceをクラスタ外部に晒すことができる
-
作成したServiceを確認する
$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-node LoadBalancer 10.108.144.78 <pending> 8080:30369/TCP 21s kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 23m
- minikubeではLoadBalancer typeのサービスはminikube service コマンドを通してサービスにアクセス可能にする
-
Addonの有効化
- 現在サポートされているaddonの一覧表示
$ minikube addons list
- addonを有効化する。今回はmetrics-serverを対象にする
$ minikube addons enable metrics-server
- addonをインストールして出来たPodやServiceを確認する
kubectl get pod,svc -n kube-system
後片付け
- serviceとdeploymentを削除する
$ kubectl delete service hello-node $ kubectl delete deployment hello-node
- Minikube clusterを停止する
$ minikube stop
- (Option) Minikubeクラスターの削除
# Optional $ minikube delete
参考文献一覧
- https://kubernetes.io/docs/tutorials/hello-minikube/