이 문서는 kubeflow on AKS (Vanila)에서 userID, 비밀번호를 추가하고, TLS 인증서를 받아 HTTPS까지 연결하는 방법입니다. Kserve는HTTPS환경이 아니면 배포되지 않아서 이 설정이 필수입니다.

Deploy Kubeflow with Password, Ingress and TLS 이 문서(AKS)를 베이스로 하지만 Securing the Kubeflow authentication with HTTPS(IKS;IBM Kubeflow Service), Authentication using OIDC in Azure kubeflow 공식 문서도 참고했습니다.

리포지토리 클론(Vanila와 동일)

git clone --recurse-submodules <https://github.com/Azure/kubeflow-aks.git>

ID, PW 설정

kubeflow-aks/deployments/tls/dex-config-map.yaml을 통해 id, pw를 수정할 수 있습니다.

Bcrypt Hash Generator | CodersTool 이곳에서 사용할 비밀번호 해시 생성 후

image.png

email: [email protected]

pw: kubeflowgn1234!@

바뀐 기본 이메일은 kubeflow-aks/manifests/com/user-namespace/base/params.env에 설정해줘야 합니다.

image.png

바뀐 설정을 manifests/tls로 복사합니다.

cp -a deployments/tls manifests/tls

이후 kubeflow-aks 디렉토리에서 아래의 명령어로 설치를 진행합니다.

while ! kubectl kustomize ./tls | kubectl apply -f -; do echo "Retrying to apply resources"; sleep 10; done

설치가 끝난 후 dex를 재시작합니다.

kubectl rollout restart deployment dex -n auth

TLS 인증서 적용하기

istio-ingressgateway 를 loadbalance 타입으로 변경합니다.

kubectl patch svc istio-ingressgateway -n istio-system \\
  -p '{"spec":{"type":"LoadBalancer"}}'