이제 WSL2에 minikube를 넣어 보았습니다.

6699 단어 WSL

소개



조금 로컬로 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도 만들어 보려고 생각합니다.

    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
    

    $ 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를 사용하여 여러 가지 시도하고 싶습니다.

    좋은 웹페이지 즐겨찾기