LoginSignup
9
8

More than 3 years have passed since last update.

今更ながらWSL2にminikube入れてみた

Posted at

はじめに

少しローカルでk8sを試してみたくて今更ながらWSL2にminikube入れてみました。

また忘れてしまいそうなので、備忘録としてインストール手順のメモを残します。

環境

  • Windows10 home
    • version: 2004
    • OSビルド:20279.1
  • WSL2
  • Docker

WSL2のインストール

公式ページの手順を参考にインストールしました。

Dockerのインストール

WSL2内で以下コマンドを実行し、インストールしました。

(自分は以前にCUDA on WSL2を試すときにDockerを入れたため、若干コマンドがうろ覚えですが以下でよかった気がします...)

shell

$ curl https://get.docker.com | sh

minikubeのインストール

基本的には公式ページの手順に沿ってインストールしました。

shell
# バイナリをダウンロード
$ 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もインストールしておきます。
こちらも例にもれず、公式ページの手順に沿っていインストールしました。

shell
# 最新版のバイナリをダウンロード
$ 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を起動させてみます。

shell
# 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も作ってみようと思います。

sample_nginx.yaml

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
shell
$ 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にアクセスしてみると、以下のような画面が表示されるかと思います。

image.png

最後に、使い終わったPodの掃除をしておきます。

$ kubectl delete deployment nginx
$ kubectl delete svc nginx

おわりに

今回は、自宅のWindows PCにminikubeをインストールしてサンプルを少し動かしてみました。

私自身がMLエンジニアなので、今後はMLに関わるところでminikubeを使って色々試したいと考えています。

9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8