Install Kubeflow 1.6.1
Table of Contents
Prerequisites
Kubeflow 1.6.1 Official GitHub Repository
Kubernetes (up to 1.22) with default StorageClass
Kustomize (version 3.2.0)
kubectl
Download and unzip Kubeflow 1.6.1 manifests
Install zip via apt
cd ~
sudo apt-get update
sudo apt-get install -y zip
Download Kubeflow 1.6.1 manifests
wget -O manifests-1.6.1.zip https://github.com/kubeflow/manifests/archive/refs/tags/v1.6.1.zip
Unzip Kubeflow 1.6.1 manifests
unzip manifests-1.6.1.zip -d .
Download Kustomize 3.2.0
cd ./manifests-1.6.1
wget -O kustomize https://github.com/kubernetes-sigs/kustomize/releases/download/v3.2.0/kustomize_3.2.0_linux_amd64
Install Kubeflow to Kubernetes
Prepare
sudo rm -rf /mnt
sudo mkdir -p /mnt/minio # Others will be created automatically.
PV for Kubernetes
Save the following yaml content as kubeflow-pv.yaml
and store it in the kubeflow manifests directory
# Notice: Save this file in the kubeflow manifests directory
kind: PersistentVolume
apiVersion: v1
metadata:
name: katib-mysql-pv
namespace: kubeflow
labels:
type: local
name: katib-mysql
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/katib-mysql"
---
kind: PersistentVolume
apiVersion: v1
metadata:
name: minio-pv
namespace: kubeflow
labels:
type: local
name: kubeflow
spec:
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/minio"
---
kind: PersistentVolume
apiVersion: v1
metadata:
name: mysql-pv
namespace: kubeflow
labels:
type: local
name: kubeflow
spec:
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/mysql"
---
kind: PersistentVolume
apiVersion: v1
metadata:
name: authservice-pv
namespace: istio-system
labels:
type: local
name: authservice
spec:
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/autoservice"
Default StorageClass
Save the following yaml content as default-storageclass.yaml
and store it in the kubeflow manifests directory
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
annotations:
storageclass.kubernetes.io/is-default-class: "true"
name: standard
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
kubectl apply -f default-storageclass.yaml
Patch Kubeflow manifests
Replace the original yaml file with the following content ↓
Reference: https://blog.csdn.net/qq_39698985/article/details/123981927
Original file path: manifests-1.6.1/common/oidc-authservice/base/statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: authservice
spec:
replicas: 1
selector:
matchLabels:
app: authservice
serviceName: authservice
template:
metadata:
annotations:
sidecar.istio.io/inject: "false"
labels:
app: authservice
spec:
# ===== FIXED PERSSIONS START =====
# Fix Error opening bolt store: open /var/lib/authservice/data.db: permission denied
initContainers:
- name: fix-permissions
image: busybox
command: ["sh", "-c"]
args: ["chmod -R 777 /var/lib/authservice;"]
volumeMounts:
- name: data
mountPath: /var/lib/authservice
# ===== FIXED PERSSIONS END =====
containers:
- name: authservice
image: gcr.io/arrikto/kubeflow/oidc-authservice:6ac9400
imagePullPolicy: Always
ports:
- name: http-api
containerPort: 8080
envFrom:
- secretRef:
name: oidc-authservice-client
- configMapRef:
name: oidc-authservice-parameters
volumeMounts:
- name: data
mountPath: /var/lib/authservice
readinessProbe:
httpGet:
path: /
port: 8081
securityContext:
fsGroup: 111
volumes:
- name: data
persistentVolumeClaim:
claimName: authservice-pvc
Istio
./kustomize build common/istio-1-14/istio-crds/base | kubectl apply -f -
./kustomize build common/istio-1-14/istio-namespace/base | kubectl apply -f -
./kustomize build common/istio-1-14/istio-install/base | kubectl apply -f -
Knative Serving
./kustomize build common/knative/knative-serving/overlays/gateways | kubectl apply -f -
./kustomize build common/istio-1-14/cluster-local-gateway/base | kubectl apply -f -
Cert Manager
./kustomize build common/cert-manager/cert-manager/base | kubectl apply -f -
./kustomize build common/cert-manager/kubeflow-issuer/base | kubectl apply -f -
KServe
kubectl apply -f https://github.com/kserve/kserve/releases/download/v0.8.0/kserve.yaml
KServe Built-in ClusterServingRuntimes
kubectl apply -f https://github.com/kserve/kserve/releases/download/v0.8.0/kserve-runtimes.yaml
Other
Dex
./kustomize build common/dex/overlays/istio | kubectl apply -f -
OIDC AuthService
./kustomize build common/oidc-authservice/base | kubectl apply -f -
kubectl apply -f kubeflow-pv.yaml -l name=authservice
Kubeflow Namespace
./kustomize build common/kubeflow-namespace/base | kubectl apply -f -
Kubeflow Roles
./kustomize build common/kubeflow-roles/base | kubectl apply -f -
Kubeflow Istio Resources
./kustomize build common/istio-1-14/kubeflow-istio-resources/base | kubectl apply -f -
Kubeflow Pipelines
./kustomize build apps/pipeline/upstream/env/cert-manager/platform-agnostic-multi-user | kubectl apply -f -
kubectl apply -f kubeflow-pv.yaml -l name=kubeflow
katib
./kustomize build apps/katib/upstream/installs/katib-with-kubeflow | kubectl apply -f -
kubectl apply -f kubeflow-pv.yaml -l name=katib-mysql
Central Dashboard
./kustomize build apps/centraldashboard/upstream/overlays/kserve | kubectl apply -f -
Admission Webhook
./kustomize build apps/admission-webhook/upstream/overlays/cert-manager | kubectl apply -f -
Notebooks
./kustomize build apps/jupyter/notebook-controller/upstream/overlays/kubeflow | kubectl apply -f -
Profiles + KFAM
./kustomize build apps/profiles/upstream/overlays/kubeflow | kubectl apply -f -
Volumes Web App
./kustomize build apps/volumes-web-app/upstream/overlays/istio | kubectl apply -f -
Tensorboard
./kustomize build apps/tensorboard/tensorboards-web-app/upstream/overlays/istio | kubectl apply -f -
Training Operator
./kustomize build apps/training-operator/upstream/overlays/kubeflow | kubectl apply -f -
User Namespace
./kustomize build common/user-namespace/base | kubectl apply -f -
Last modified: 30 November 2024