- 티스토리챌린지
- c++
- datastructure
- Algorithm
- Univ._Study
- Database_Design
- tensorflow
- Artificial_Intelligence
- Image_classification
- 2023_1st_Semester
- Personal_Study
- Java
- study
- codingTest
- C
- programmers
- cloud_computing
- Operating_System
- 자격증
- kubeflow
- Linux
- SingleProject
- Python
- Android
- Unix_System
- app
- Baekjoon
- 리눅스마스터2급
- 오블완
- Kubernetes
코딩 기록 저장소
[쿠버플로우] 설치 및 세팅하기 본문
목차
Master노드 버전 정리
- kubernetes : v1.28.15
- kustomize : v5.6.0
- kubeflow : v1.8.0
1. Kubeflow 설치 및 접속
01. Kubeflow 설치하기
kustomize를 설치함
curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash
install kustomize /usr/bin/kustomize
manifest git을 clone 함
git clone https://github.com/kubeflow/manifests.git
cd manifests
git checkout v1.8.0
http로 접속할 수 있도록 설정함
- 아래 3개 파일의 secure_cookies를 false로 설정함
- apps/jupyter/jupyter-web-app/upstream/base/params.env
- apps/tensorboard/tensorboards-web-app/upstream/base/params.env
- apps/volumes-web-app/upstream/base/params.env
deployment.yaml 수정
common/oidc-client/oauth2-proxy/base/deployment.yaml
- ndots를 4로 설정
apiVersion: apps/v1
kind: Deployment
metadata:
name: oauth2-proxy
labels:
app: oauth2-proxy
spec:
replicas: 2
selector:
matchLabels:
app.kubernetes.io/name: oauth2-proxy
template:
metadata:
labels:
app.kubernetes.io/name: oauth2-proxy
spec:
dnsConfig:
options:
- name: ndots
value: "4"
kustomize를 사용해 kubeflow 설치하기
- 5분에서 10분 정도 소요됨
- 모든 pod가 running이 될 때까지 기다림
while ! kustomize build example | kubectl apply -f -; do echo "Retrying to apply resources"; sleep 20; done
02. Kubeflow 접속하기
istio-ingressgateway 수정
- 기본적으로 ClusterIP 타입으로 생성되기 때문에, 호스트 환경에서 접속하기 위해 NodePort로 변경
kubectl edit -n istio-system svc istio-ingressgateway
Kubeflow 접속 해결
- http://{Node IP + 포트번호}로 접속
- 이때 Access to {IP주소} was denied You don't hava authorization to view this page. HTTP ERROR 403 이런 오류가 뜸
- PVC 정보 확인함
- authservice-pvc가 Pending 상태로 뜸
- 요청한 PersistentVolumeClaim(PVC)에 연결할 수 있는 PersistentVolume(PV)이 없음
- 이로 인해 oidc-authservice Pod도 실행되지 않고, 결국 403 인증 오류가 생김
kubectl get pvc -n istio-system
- local-path-provisioner 설치함
- 로컬 테스트 환경이라 local-path StorageClass를 사용함
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml
- 설치 후 StorageClass 목록에 local-path가 나타나야 함
kubectl get storageclass
- PVC에 local-path 지정
- oidc-authservice에서 사용하는 PVC 리소스를 수정함
nano authservice-pvc.yaml
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: authservice-pvc namespace: istio-system spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: local-path
- PVC yaml 파일 수정 후 적용함
kubectl delete pvc authservice-pvc -n auth kubectl apply -f authservice-pvc.yaml
- PVC 바인딩 상태 확인
kubectl get pvc -n istio-system
Kubeflow 접속
- http://{Node IP + 포트번호}로 접속
- 아래 사진과 같은 사이트가 뜨는데 기본 계정으로 로그인
- 기본 계정 : user@example.com
- 패스워드 : 12341234
- 이렇게 뜨면 접속 성공!
03. Kubeflow 삭제
- 단일 명령어로 Kubeflow 삭제가 가능함
cd /home/$USER/manifests
kustomize build example | kubectl delete -f -
2. kubeflow 사용자 세팅
01. 유저 프로필 생성하기
- profile.yaml을 활용해 유저 프로필 생성하기
- kubeflow > manifests > common > dex > base 경로에 yaml 파일 생성
- nang-profile.yaml로 생성함
apiVersion: kubeflow.org/v1 kind: Profile metadata: name: nang # 생성하고 싶은 프로필의 이름(네임스페이스로 지정할 이름) spec: owner: kind: User name: nang@example.com # 생성하고 싶은 프로필의 이메일(Kubeflow로그인ID)
- apply 명령어를 이용해 profile을 적용함
kubectl apply -f nang-profile.yaml
※ 프로필 생성 시 spec 하위에 resourceQuotaSpec 추가할 수 있음
- 유저를 추가할 때 프로필 별 사용할 수 있는 리소스 양 지정 가능
apiVersion: kubeflow.org/v1beta1 kind: Profile metadata: name: nang spec: owner: kind: User name: nang@example.com resourceQuotaSpec: hard: cpu: "2" memory: 1Gi persistentvolumeclaims: "1" requests.storage: "10Gi"
- config-map.yaml을 활용해 유저 등록
- kubeflow > manifests > common > dex > base >config-map.yaml 파일을 수정하면 위에서 생성한 유저의 네임스페이스와 Kubeflow의 정보를 매핑함
- username: 네임스페이스명 / email: Kubeflow 로그인 ID / hash: 암호화된 비밀번호
- config-map.yaml 적용함
kubectl apply -f config-map.yaml -n auth
- 적용 후 확인하기
- 네임스페이스 및 config 설정을 적용하기 위해서는 dex를 재실행해야 함
kubectl rollout restart deployment dex -n auth
- 적용이 잘 되었음!!
02. kubeflow 권한 제한하기
kim 프로필 생성
- 이 Profile을 만들면 kim 네임스페이스와 kim@example.com 사용자에게 edit 권한이 부여됨
Role 생성
- kim 사용자가 nang 네임스페이스에 접속했을 때 오직 Notebook만 생성/조회/삭제할 수 있도록 Role을 정의함
Rolebinding 부여
참고한 링크
1. Kubeflow 설치 및 접속
https://kyeongseo.tistory.com/entry/kubeflow-190-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0
kubeflow 1.9.0 설치하기
kubernetes versionv1.29.8kubeflow version1.9.0kustomize versionv5.4.31. kustomize를 설치한다.curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash install kustomize /usr/bin/kustomize 2. manifes
kyeongseo.tistory.com
Minikube (k8s 1.28.2) + Kubeflow 1.8 설치하기
[1단계] Minikube 로 K8S 세팅하기이번 글에서는 Minikube로 Kubernetes 버전 1.28.2버전을 설치하고, 현재 기준 최신 버전인 kubeflow 1.8을 설치할 거에요먼저 k3s, kubespray, kubeadm등 다양한 방식으로 설치해볼
dolphincoding.tistory.com
2. Kubeflow 세팅
https://semizero.tistory.com/47
[Kubeflow] Kubeflow 유저 추가하기(유저 분기처리하기)
Kubeflow를 활용하다보면 user@example.com/12341234 라는 샘플 계정을 활용하여, 테스트하는 경우가 많다. 그러나 서비스 관점에서는 사용자별 Kubeflow 기능을 분기하여 관리해야할 필요가 있다. 그렇기에
semizero.tistory.com
'개인 공부 > 쿠버플로우' 카테고리의 다른 글
[쿠버플로우] 개념 및 구성 요소 정리 (0) | 2025.07.02 |
---|