Starts kind local (run from kubernetes directory)
mkdir -p ./data && \
kind create cluster --config kind-config-mlstack.yaml && \
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
(Optional) Enable ingress - using ingress nginx deploy ingress (Roles, RoleBinding, ServiceAccounts etc.) - you do not want to write this manually
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
Add relevant helm repos
helm repo add bitnami https://charts.bitnami.com/bitnami && \
helm repo add clemens33 https://clemens33.github.io/mlflow && \
helm repo add flyteorg https://flyteorg.github.io/flyte
Deploy using kustomize and helm
kubectl kustomize --enable-helm | kubectl apply -f -
Access
- mlflow: http://localhost:8888/mlflow/#/
- minio: http://localhost:8888/
Templates only
kubectl kustomize --enable-helm > _ml-stack.yaml
Undeploy
kubectl kustomize --enable-helm | kubectl delete -f -
Port forwards (for minio console not working - port forward does not support web sockets - minio/console#2539)
kubectl port-forward svc/ml-minio 9000:9000 9001:9001
Port forwards for postgres
kubectl port-forward svc/ml-postgres 5432:5432
Port forwards for mlflow
kubectl port-forward svc/ml-mlflow 5000:80
Port forwards for flyte
kubectl port-forward svc/ml-flyte-grpc 8089:8089
kubectl port-forward svc/ml-flyte-http 8088:8088
Delete kind cluster
kind delete cluster --name ml-stack
Exporting kind config
kind get kubeconfig --name ml-stack > ~/.kube/config_kind_ml-stack && \
export KUBECONFIG=~/.kube/config_kind_ml-stack