Multipass MicroK8sMac에 Kubeflow 환경 구축

개요


집에서 복숭아철을 만들면서 눈치를 챘어요.
AI 관련 회사에 어렵게 입사했는데 한 해 동안 앱 개발이 부쩍 뜸해진 것 같아요.
AI에 대한 지식이 전혀 향상되지 않았습니다.😫
그래서 연말연시에 좋아하는 것을 배우기로 했어요.
GDBT와 Deep Learning 주변에서 놀고 싶어요.
어쨌든 예전에 살짝 건드렸던 Kubeflow로 현지 환경을 재구성하다

로컬 환경 구축


왠지 옛날 V1이0 정도 만졌을 때.
MiniKF 같은 Vagrantm이나 VirtualBox에서만 많이 쓰는 것 같아요.
https://note.com/ucwork/n/n296f46a984c9
뭐랄까, 오랜만에 본 문서(v1.2)를 보니 선택항이 많이 늘었어요.👶
https://www.kubeflow.org/docs/started/workstation/getting-started-macos/
아무튼 Minikube에서 먼저 얘기해주세요.
항상 K8s 주변에 강한 기사를 써주시는 분.
multippass에 환승 기사를 썼어요. 자기도 이쪽으로 가볼게요.
https://qiita.com/mumoshu/items/6ff56badcfabe5ab1f49

MacOS용 multippass 설치


다운로드 및 설치하려면 여기를 클릭하십시오.
https://multipass.run/#install
ubuntu를 만들었어요.
$ multipass launch --name ubuntu-lts
$
$ multipass exec ubuntu-lts -- lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.1 LTS
Release:	20.04
Codename:	focal
$
$ multipass list
Name                    State             IPv4             Image
ubuntu-lts              Running           192.168.64.9     Ubuntu 20.04 LTS
일단 만든 건 지우고.
$ multipass stop ubuntu-lts
$ multipass delete ubuntu-lts
$ multipass purge

환경의 제작


multippass로 제작된 ubuntu에 마이크로k8s 설치
환경 만들기
$ multipass launch --name kubeflow --mem 16G --disk 50G --cpus 4
$ multipass shell kubeflow
ubuntu@kubeflow:~$ 
ubuntu@kubeflow:~$ sudo snap install microk8s --classic
sudo snap install microk8s --classic --channel=latest/edge
microk8s (1.20/stable) v1.20.0 from Canonical✓ installed
ubuntu@kubeflow:~$
ubuntu@kubeflow:~$ sudo microk8s status --wait-ready
microk8s is running
high-availability: no
  datastore master nodes: 127.0.0.1:19001
  datastore standby nodes: none
ubuntu@kubeflow:~$
ubuntu@kubeflow:~$ sudo usermod -a -G microk8s $USER
ubuntu@kubeflow:~$ sudo chown -f -R $USER ~/.kube

환경 만들기


마지막으로 만든 사용자 그룹 사용
먼저 ubuntu의 instance에서 뽑은 다음에 다시 실시합니다
$ multipass shell kubeflow
ubuntu@kubeflow:~$ 
ubuntu@kubeflow:~$ microk8s.enable dns dashboard storage
...
Storage will be available soon
ubuntu@kubeflow:~$
ubuntu@kubeflow:~$ microk8s.enable kubeflow
Password [XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]:
...
Waited 405s for operator pods to come up, 1 remaining.
Operator pods ready.
Waiting for service pods to become ready.
Congratulations, Kubeflow is now available.

The dashboard is available at http://10.64.140.43.xip.io
...
Congratulations, Kubeflow is now available.
마이크로k8s의 kubeflow를 유효하게 하려면 시간이 오래 걸려요.
위의 평론이 나왔는데 어쨌든 성공한 것 같다

Kubeflow Dashboard 방문을 위한 사전 준비


hosts로 추가 설정
모든 포트가mac를 통해 접근할 수 있도록 iptable를 설정합니다
(이 근처에는 문헌에 기재되지 않은 것이 몇 군데 있으니 많은 사람들이 꽉 채울 것이다
$ multipass shell kubeflow
ubuntu@kubeflow:~$ 
ubuntu@kubeflow:~$ sudo -- sh -c "echo '10.64.140.43\t10.64.140.43.xip.io' >> /etc/hosts"
ubuntu@kubeflow:~$ 
ubuntu@kubeflow:~$ sudo iptables -P FORWARD ACCEPT
공식에 따라 이런 방식으로 맥의 네트워크에서 SOCKS Proxy 화이트로 설정
시스템 환경 설정 -> 네트워크 -> 세부 정보 -> 프록시 > SOCKS 프록시 (검사) -> SOCKS 프록시 (127..0.1:9999)
이거 설정하면 크롬이 있어서 보통 인터넷 검색이 안 되는 장면이 있어서 힘들어요.
Firefox 브라우저에서만 설정

그리고 Proxy session 만들기
$ multipass list
Name                    State             IPv4             Image
kubeflow                Running           192.168.64.10    Ubuntu 20.04 LTS
$
$ sudo ssh -i /var/root/Library/Application\ Support/multipassd/ssh-keys/id_rsa -D9999 [email protected]
Last login: Thu Dec 31 14:43:41 2020 from 192.168.64.1
ubuntu@kubeflow:~$

Kubeflow의 Dashboard를 방문해 보도록 하겠습니다.


그리고 Firefox로 다음 방문을 하면 로그인 화면이 보일 거예요.http://10.64.140.43.xip.io microk8s.enable kubeflow 입력이 완료되면 표시되는 Username, Password를 입력하면 Dashboard 화면이 보일 것입니다!!

문제.


잘 진행됐을 텐데 Notebook Servers가 표시되지 않았습니다.😫
이게 있으면 Jupter notebook을 만들 수 있어요.
그리고 Artifact Store에 sorry hogehoge가 등장했습니다.
한나절 이상 고민하고 많이 해봤는데 모르겠어요.
그래서 얘를 일단 issue에 던져볼게요.
https://github.com/juju-solutions/bundle-kubeflow/issues/282

총결산


AI에서 놀고 싶은데 상관없는 곳에 오래 걸렸어 w
당분간 지방 환경의 놀이터에서 여기저기 뛰어다니지 마세요.
GCP에서 Kubeflow 환경 만들기🌝
issue의 답장을 받으면 로컬 구축을 다시 시작해 보세요.👶

좋은 웹페이지 즐겨찾기