Kubeflow 설치

2025. 2. 1. 23:37· 공부/튜토리얼

사실 kubeflow 설치를 1월 중순에 시도했습니다. 안되서 2월 초에 새로운 마음으로 다시 시도하였습니다. 지금 생각해보니 도커 권한이 없어서 이미지를 못받아와서 모든 것들이 어그러진 것 같더군요,, 여튼 제대로 성공하여 바로 글로 작성해봅니다 ㅎㅎ

Ubuntu 22.04 LTS 에서 실행하였습니다. 쿠버네티스는 1.32 버전을 사용합니다. 또한 minikube 를 사용합니다.

1. install mysql, install docker

2. install kubernetes

https://www.whatwant.com/entry/Kubeflow-in-Kubernetes

https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/

 

Install and Set Up kubectl on Linux

Before you begin You must use a kubectl version that is within one minor version difference of your cluster. For example, a v1.32 client can communicate with v1.31, v1.32, and v1.33 control planes. Using the latest compatible version of kubectl helps avoid

kubernetes.io

cd ~
mkdir kubeflow
cd kubeflow

curl -LO https://dl.k8s.io/release/v1.32.0/bin/linux/amd64/kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version --client

 

2. install kustomize

curl -s "<https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh>"  | bash
sudo install -o root -g root -m 0755 kustomize /usr/local/bin/kustomize
kustomize version # v5.6.0

3. install minikube

https://minikube.sigs.k8s.io/docs/start/?arch=%2Flinux%2Fx86-64%2Fstable%2Fbinary+download

curl -LO <https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64>
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
minikube start
kubectl get po -A

4.nfs 설정

https://www.whatwant.com/entry/NFS-Server-Ubuntu-1804 <<< 정말 감사합니다!!!

5. install helm

wget https://get.helm.sh/helm-v3.12.3-linux-amd64.tar.gz
tar zxvf helm-v3.12.3-linux-amd64.tar.gz
cd linux-amd64
sudo install -o root -g root -m 0755 helm /usr/local/bin/helm
cd ..
helm repo add nfs-subdir-external-provisioner <https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/>
helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner  --set nfs.server=10.50.0.44  --set nfs.path=/data/mjjeon/nfs

 

만약에 kubectl cluster-info 명령어를 써서 아래와 같은 에러가 난다면,

E0201 13:12:27.734453 2056597 memcache.go:238] couldn't get current server API group list: Get "https://127.0.0.1:6443/api?timeout=32s": dial tcp 127.0.0.1:6443: connect: connection refused

→ minikube 는 동적으로 ip 를 생성하기 때문에 ~/.kube/config 파일을 수정했을 가능성이 있다. 

kubectl cluster-info # 현재 확인
minikube status
minikube ip
kubectl config view
kubectl config use-context minikube 
minikube stop
minikube start

위 명령어로 확인해서 원래의 ip 값으로 바꿔주고, minikube status 확인하고 다시 kubectl cluster-info 로 잘 돌아가는지 확인

만약에 client / server 버전 다를 때

6. install kind

curl -Lo ./kind <https://kind.sigs.k8s.io/dl/v0.26.0/kind-linux-amd64>
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind

kind 설치 이후에 아래 그대로 따라함

7. install kubeflow

kind 설치 이후에 아래 그대로 따라함

https://github.com/kubeflow/manifests?tab=readme-ov-file#install-with-a-single-command

7.1. 리눅스에서는 아래와 같이 명령어 입력 Linux kernel subsystem changes to support many pods

sudo sysctl fs.inotify.max_user_instances=2280
sudo sysctl fs.inotify.max_user_watches=1255360

7.2. Create kind cluster

cat <<EOF | kind create cluster --name=kubeflow --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
  image: kindest/node:v1.32.0@sha256:c48c62eac5da28cdadcf560d1d8616cfa6783b58f0d94cf63ad1bf49600cb027
  kubeadmConfigPatches:
  - |
    kind: ClusterConfiguration
    apiServer:
      extraArgs:
        "service-account-issuer": "kubernetes.default.svc"
        "service-account-signing-key-file": "/etc/kubernetes/pki/sa.key"
EOF

7.3. Save kubeconfig

kind get kubeconfig --name kubeflow > /tmp/kubeflow-config
export KUBECONFIG=/tmp/kubeflow-config

7.4. Create a Secret based on existing credentials in order to pull the images

도커 허브 회원가입 해야합니다. Docker Hub Container Image Library | App Containerization 에서 회원가입하고,  구글계정이나 그렇게 가입했을 경우, 우측 상단의 프로필 설정으로 가서 메일을 이용해 비밀번호를 초기화해서 설정하면 됩니다. 계정정보 입력하면 됩니다. 이거 안 하면 이미지를 풀을 못해서 계속 설치가 안되고 pod 확인 시에 계속 crash 납니다 ㅠㅠ

docker login

kubectl create secret generic regcred \\
    --from-file=.dockerconfigjson=$HOME/.docker/config.json \\
    --type=kubernetes.io/dockerconfigjson

 자 이제 설치합니다.

git clone https://github.com/kubeflow/manifests.git
cd manifests
while ! kustomize build example | kubectl apply --server-side --force-conflicts -f -; do echo "Retrying to apply resources"; sleep 20; done

설치가 다 되었습니다!!!!!!

8. Connect to your Kubeflow Cluster, 포트포워딩

확인해보죠

kubectl get pods -n cert-manager
kubectl get pods -n istio-system
kubectl get pods -n auth
kubectl get pods -n knative-eventing
kubectl get pods -n knative-serving
kubectl get pods -n kubeflow
kubectl get pods -n kubeflow-user-example-com
kubectl port-forward svc/istio-ingressgateway -n istio-system 8080:80

자 이제 들어갑시다~~~

http://localhost:8080

Dex login screen이 보이면 아래 계정 정보를 입력하여 로그인합니다.

email : user@example.com

password : 12341234

왼쪽 메뉴들이 잘 눌러집니다 ㅎㅎ 이전에는 안 눌러졌었는데 처음에는 아마 이미지 받는 부분이 다 안되서 팟 확인 시 crash 난 것들이 많았었습니다,, 이제 잘 되니 이후에는 gpu도 연결하고 학습까지 해봐야겠네요 ㅎㅎ

수고하셨씁니다!!!

728x90
반응형

'공부 > 튜토리얼' 카테고리의 다른 글

java 17 mac silicon m1 설치  (0) 2024.05.02
[토크ON세미나] 딥러닝 기반 음성인식 기초 3,4,5강  (0) 2023.05.09
[토크ON세미나] 딥러닝 기반 음성인식 기초 1,2강 - 딥러닝 기초 I, II | T아카데미  (0) 2023.05.03
Learn Git Branching  (0) 2023.05.02
Dot products and duality | Chapter 9, Essence of linear algebra  (0) 2022.11.19
'공부/튜토리얼' 카테고리의 다른 글
  • java 17 mac silicon m1 설치
  • [토크ON세미나] 딥러닝 기반 음성인식 기초 3,4,5강
  • [토크ON세미나] 딥러닝 기반 음성인식 기초 1,2강 - 딥러닝 기초 I, II | T아카데미
  • Learn Git Branching
내공얌냠
내공얌냠
내공냠냠
내공얌냠
내공냠냠
내공얌냠
전체
오늘
어제
  • 분류 전체보기 (257)
    • 개발 (91)
      • mediapipe (16)
      • insightface (5)
      • JongjuAR (3)
    • 자료구조 알고리즘 (79)
      • 코딩테스트 (64)
      • 이론 (15)
    • 공부 (54)
      • 단행본 (8)
      • 튜토리얼 (19)
      • 논문 (15)
      • 복기 (5)
    • 참여 (5)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 깃 튜토리얼
  • claude cli 사용기
  • 컴퓨터 비전 기초
  • 컴퓨터 비전
  • claude cli 사용방법
  • postgresql 재설치
  • 미디어파이프
  • claude cli 설치
  • flutter tutorial
  • postgresql install in mac
  • flutter
  • vscode 스프링 설치
  • flutter 행사 후기
  • 음성인식 기초
  • flutter 행사
  • 구글 미디어파이프
  • 플러터 튜토리얼
  • 컴퓨터 비전 책 추천
  • 딥러닝 기반 음성인식 기초
  • speaker adaptation tts
  • git tutorial
  • google mediapipe
  • 음성인식 튜토리얼
  • mediapipe
  • mediapipe translate
  • python telegrambot
  • 플러터
  • flutter conference
  • ios google places api
  • 머신러닝이란

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
내공얌냠
Kubeflow 설치
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.