pipelines/manifests/kustomize
Chen Sun 26de102f82 chore(release): bumped version to 1.4.0-rc.1 2021-02-01 00:18:50 -08:00
..
base chore(release): bumped version to 1.4.0-rc.1 2021-02-01 00:18:50 -08:00
cluster-scoped-resources [Manifest] Apply kustomize best practices to standalone manifest (#3978) 2020-06-15 19:09:57 -07:00
env chore(release): bumped version to 1.4.0-rc.1 2021-02-01 00:18:50 -08:00
hack refactor(deployment): separate metadata-writer and metadata-grpc folders (4071) 2020-06-28 01:14:14 -07:00
sample feat: add grafana as part of the customized kfp deployment (#4404) 2020-08-24 16:49:34 +08:00
third-party feat: add grafana as part of the customized kfp deployment (#4404) 2020-08-24 16:49:34 +08:00
OWNERS chore: update OWNERS 2020-11-09 10:18:18 +08:00
README.md feat(manifest): add support for Standalone KFP on AWS. Fixes #4337 (#4350) 2020-08-12 18:56:14 -07:00
STRUCTURE.md OSS 1.0 Kustomize part-2 parameterize & fix CloudSQL (#3540) 2020-04-20 18:46:35 +08:00
gcp-workload-identity-setup.sh feat(deployment): GCP managed storage - detailed instructions to set up workload identity bindings before deployment (#4232) 2020-07-16 23:13:00 -07:00
wi-utils.sh Migrate standalone deployment to workload identity on GCP (#2619) 2019-12-16 22:05:58 -08:00

README.md

Install Kubeflow Pipelines

This folder contains Kubeflow Pipelines Kustomize manifests for a light weight deployment. You can follow the instruction and deploy Kubeflow Pipelines in an existing cluster.

To install Kubeflow Pipelines, you have several options.

  • Via GCP AI Platform UI.
  • Via an upcoming commandline tool.
  • Via Kubectl with Kustomize, it's detailed here.

Install via Kustomize

Deploy latest version of Kubeflow Pipelines.

It uses following default settings.

  • image: latest released images
  • namespace: kubeflow
  • application name: pipeline

Option-1 Install it to any K8s cluster

It's based on in-cluster PersistentVolumeClaim storage.

kubectl apply -k cluster-scoped-resources/
kubectl wait crd/applications.app.k8s.io --for condition=established --timeout=60s
kubectl apply -k env/platform-agnostic/
kubectl wait applications/pipeline -n kubeflow --for condition=Ready --timeout=1800s
kubectl port-forward -n kubeflow svc/ml-pipeline-ui 8080:80

Now you can access it via localhost:8080

Option-2 Install it to GCP with in-cluster PersistentVolumeClaim storage

It's based on in-cluster PersistentVolumeClaim storage. Additionally, it introduced a proxy in GCP to allow user easily access KFP safely.

kubectl apply -k cluster-scoped-resources/
kubectl wait crd/applications.app.k8s.io --for condition=established --timeout=60s

kubectl apply -k env/dev/
kubectl wait applications/pipeline -n kubeflow --for condition=Ready --timeout=1800s

# Or visit http://console.cloud.google.com/ai-platform/pipelines
kubectl describe configmap inverse-proxy-config -n kubeflow | grep googleusercontent.com

Option-3 Install it to GCP with CloudSQL & GCS-Minio managed storage

Its storage is based on CloudSQL & GCS. It's better than others for production usage.

Please following sample for a customized installation.

Option-4 Install it to AWS with S3 and RDS MySQL

Its storage is based on S3 & AWS RDS. It's more natural for AWS users to use this option.

Please following AWS Instructions for installation.

Note: Community maintains a repo e2fyi/kubeflow-aws for AWS.

Uninstall

If the installation is based on CloudSQL/GCS, after the uninstall, the data is still there, reinstall a newer version can reuse the data.

### 1. namespace scoped
# Depends on how you installed it:
kubectl kustomize env/platform-agnostic | kubectl delete -f -
# or
kubectl kustomize env/dev | kubectl delete -f -
# or
kubectl kustomize env/gcp | kubectl delete -f -
# or
kubectl delete applications/pipeline -n kubeflow

### 2. cluster scoped
kubectl delete -k cluster-scoped-resources/

Troubleshooting

Permission error installing Kubeflow Pipelines to a cluster

Run

kubectl create clusterrolebinding your-binding --clusterrole=cluster-admin --user=[your-user-name]

Samples requires "user-gcp-sa" secret

If sample code requires a "user-gcp-sa" secret, you could create one by

  • First download the GCE VM service account token Document
gcloud iam service-accounts keys create application_default_credentials.json \
  --iam-account [SA-NAME]@[PROJECT-ID].iam.gserviceaccount.com
  • Run
kubectl create secret -n [your-namespace] generic user-gcp-sa --from-file=user-gcp-sa.json=application_default_credentials.json`