Kubeflow Dex 와 Keycloak 연동 가이드이며 아래 URL 참고https://github.com/kubeflow/manifests/tree/master/common/dexKeycloak 설정KeyCloak Relm 생성Realm name :mlopsKeyCloak Client 생성Client type : OpenID ConnectClient ID : kubeflow-oidc-authserviceClient authentication : OnAuthentication flow : Standard flow, Direct access grants 만 체크Root URL : https://kubeflow.wooyoung85.netHome URL : https://kubeflow.wooyoung85...
Keycloak Install (with. Helm)Nginx Ingress Controller 에서 HTTPS 트래픽을 그대로 Keycloak 에 전달하는 설정# 작업 디렉토리 이동mkdir -p /root/files/keycloakcd /root/files/keycloak# 개인 키 생성openssl genrsa -out keycloak.key 2048# 인증서 서명 요청 (CSR) 생성openssl req -new -key keycloak.key -out keycloak.csr -subj "/CN=keycloak.local"# 자체 서명된 인증서 생성 (3650일 유효)openssl x509 -req -days 3650 -in keycloak.csr -signkey keycloak.key -out ..
Kubeflow 사용 시 SSL 설정을 하지 않으면 Http Post 요청 시 아래와 같은 에러 발생함[403] Could not find CSRF cookie XSRF-TOKEN in the request.🙆♂️ 하나하나 예외처리하기도 번거롭고 실제 운영 환경에 적합하지 않으므로 반드시 SSL 설정 하는 것을 권장함SSL 인증서 생성# snap Installdnf -y install bind-utilsdnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmdnf -y upgrade --exclude=kubelet,kubeadm,kubectlyum -y install snapdsystemctl enable..
🤦♂️ 실제 프로젝트에서는 MetalLB 가 많이 사용되지만 클라우드 VM 환경에선 지원하지 않음https://metallb.universe.tf/installation/clouds/실제 프로젝트에서 물리 L4 장비를 Ingress Controller 와 연결해서 Kubernetes 상의 서비스를 노출하기도 함😉 실제 L4 장비는 없으니 실습에서는 HAProxy 설치하기로 함!!HAProxy Install & Configmkdir -p /root/files/packages/haproxydnf download --resolve --destdir=/root/files/packages/haproxy --arch=x86_64 haproxydnf localinstall -y --disablerepo=\* /..
Kubeflow Install (v1.9.1)# cd && git clone https://github.com/kubeflow/manifests.git# Kubeflow 1.9.1 배포mkdir -p /root/files/kubeflowcurl -L https://github.com/kubeflow/manifests/archive/refs/tags/v1.9.1.tar.gz -o /root/files/kubeflow/v1.9.1.tar.gztar -zxvf /root/files/kubeflow/v1.9.1.tar.gz -C /root/files/kubeflow/mv /root/files/kubeflow/manifests-1.9.1 /root/manifestscd ~/manifestswhile ! kusto..
kind 는 Docker 컨테이너(kindest/node 이미지)를 사용하여 로컬 Kubernetes 클러스터를 실행하기 위한 도구https://kind.sigs.k8s.io/Docker 설치# sudo su -# yum update -yyum install -y bash-completion git# Set up the repositorysudo dnf -y install dnf-plugins-coresudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo# Install Docker Enginesudo dnf install -y docker-ce docker-ce-cli containerd.io doc..
K8S는 기본적으로 GPU를 스케쥴링 할 수 없고 GPU 공급업체에서 제공하는 디바이스 플러그인 설치 후 스케쥴링 가능nvidia-container-toolkit Installcurl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo |\sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo mkdir -p /root/files/packages/nvidiadnf download -y --resolve --destdir=/root/files/packages/nvidia nvidia-container-toolkitdnf localinstall -y -..
Kernel 버전 변경CUDA 개발 환경은 호스트 컴파일러 및 C 런타임 라이브러리를 포함한 호스트 개발 환경과 긴밀하게 통합되도록 설계되어 있기 때문에 Linux OS 및 Kernel 버전을 확인하는 것이 중요함NVIDIA CUDA Installation Guide for Linux - Table 1 Native Linux Distribution Support in CUDA 12.8 (https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html)NVIDIA cuDNN Backend - CPU Architecture and OS Requirements (https://docs.nvidia.com/deeplearning/cudnn/backen..