wsl2にminikube
はじめに
少しローカルでk8sを試してみたくて今更ながらWSL2にminikube入れてみました。
また忘れてしまいそうなので、備忘録としてインストール手順のメモを残します。
環境
- Windows10 home
- version: 2004
- OSビルド:20279.1
- WSL2
- Docker
WSL2のインストール
公式ページの手順を参考にインストールしました。
Dockerのインストール
WSL2内で以下コマンドを実行し、インストールしました。
(自分は以前にCUDA on WSL2を試すときにDockerを入れたため、若干コマンドがうろ覚えですが以下でよかった気がします...)
$ curl https://get.docker.com | sh
minikubeのインストール
基本的には公式ページの手順に沿ってインストールしました。
# バイナリをダウンロード $ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \ && chmod +x minikube # Minikube実行可能バイナリをパスに追加 $ sudo mkdir -p /usr/local/bin/ $ sudo install minikube /usr/local/bin/
kubectlのインストール
どうせ使うので、ついでにkubectlもインストールしておきます。 こちらも例にもれず、公式ページの手順に沿っていインストールしました。
# 最新版のバイナリをダウンロード $ curl -LO "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 $ sudo mv ./kubectl /usr/local/bin/kubectl
動作確認
さっそくminikubeを起動させてみます。
# dockerを起動(これをやっておかないと、以下コマンドでエラーが出てくる) $ sudo service docker start # minikubeをdocker上で起動(割り当てメモリーを制御したければ、--memory=8gとかで設定する) $ minikube start --vm-driver=docker 😄 minikube v1.16.0 on Ubuntu 18.04 ✨ Using the docker driver based on existing profile 👍 Starting control plane node minikube in cluster minikube 🏃 Updating the running docker "minikube" container ... 🐳 Preparing Kubernetes v1.20.0 on Docker 20.10.0 ... 🔎 Verifying Kubernetes components... 🌟 Enabled addons: storage-provisioner, default-storageclass 🏄 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default # kubectlでkubernetesのAPIをたたいてみる $ kubectl get node NAME STATUS ROLES AGE VERSION minikube Ready control-plane,master 52m v1.20.0 # docker上で確認する $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0455498d5d7d gcr.io/k8s-minikube/kicbase:v0.0.15-snapshot4 "/usr/local/bin/entr…" 53 minutes ago Up 53 minutes 127.0.0.1:32771->22/tcp, 127.0.0.1:32770->2376/tcp, 127.0.0.1:32769->5000/tcp, 127.0.0.1:32768->8443/tcp minikube
お試しにnginxのPodも作ってみようと思います。
apiVersion: apps/v1 kind: Deployment metadata: name: nginx spec: selector: matchLabels: app: nginx replicas: 1 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80
$ kubectl apply -f sample_nginx.yaml deployment.apps/nginx created $ kubectl expose deploy/nginx --port=80 service/nginx exposed $ kubectl port-forward svc/nginx 8080:80 Forwarding from 127.0.0.1:8080 -> 80 Forwarding from [::1]:8080 -> 80 Handling connection for 8080
これでlocalhost:8080にアクセスしてみると、以下のような画面が表示されるかと思います。
最後に、使い終わったPodの掃除をしておきます。
$ kubectl delete deployment nginx $ kubectl delete svc nginx
おわりに
今回は、自宅のWindows PCにminikubeをインストールしてサンプルを少し動かしてみました。
私自身がMLエンジニアなので、今後はMLに関わるところでminikubeを使って色々試したいと考えています。