Skip to content

Commit

Permalink
Instructions on setting up dynamic volume provisioner (#1040)
Browse files Browse the repository at this point in the history
* Instructions on setting up dynamic volume provisioner
Resolves kubeflow/kubeflow#3774

* Clarifies what to delete

* Rearranges and clarifies descriptions

* Re-arranges and rephrases content

* Fixes link
Corrects description

* Addresses review comments
  • Loading branch information
krishnadurai authored and k8s-ci-robot committed Aug 9, 2019
1 parent f557a0e commit d09cecc
Showing 1 changed file with 25 additions and 1 deletion.
26 changes: 25 additions & 1 deletion content/docs/started/k8s/kfctl-k8s-istio.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ This config creates a vanilla deployment of Kubeflow with all its core component

### Deploy Kubeflow

This Kubeflow deployment requires a default StorageClass with a [dynamic volume provisioner](https://kubernetes.io/docs/concepts/storage/dynamic-provisioning/). Verify the `provisioner` field of your default StorageClass definition.
If you don't have a provisioner, ensure that you have configured volume provisioning in your Kubernetes cluster appropriately as mentioned [below](#provisioning-of-persistent-volumes-in-kubernetes).

Follow these steps to deploy Kubeflow:

1. Download a `kfctl` release from the [Kubeflow releases page](https://github.com/kubeflow/kubeflow/releases/) and unpack it:
Expand All @@ -33,7 +36,7 @@ Follow these steps to deploy Kubeflow:
kfctl apply all -V
```

* **${KFAPP}** - the _name_ of a directory where you want Kubeflow
* **${KFAPP}** - the _name_ of a directory where you want Kubeflow
configurations to be stored. This directory is created when you run
`kfctl init`. If you want a custom deployment name, specify that name here.
The value of this variable becomes the name of your deployment.
Expand Down Expand Up @@ -86,6 +89,27 @@ Your Kubeflow app directory contains the following files and directories:
* **${KFAPP}/app.yaml** defines configurations related to your Kubeflow deployment.
* **${KFAPP}/kustomize**: contains the YAML manifests that will be deployed.

### Provisioning of Persistent Volumes in Kubernetes

Note that you can skip this step if you have a dynamic volume provisioner already installed in your cluster.

If you don't have one:

* You can choose to create PVs manually after deployment of Kubeflow.
* Or install a dynamic volume provisioner like [Local Path Provisioner](https://github.com/rancher/local-path-provisioner#deployment). Ensure that the StorageClass used by this provisioner is the default StorageClass.

### Troubleshooting

#### Persistent Volume Claims are in Pending State

Check if PersistentVolumeClaims get `Bound` to PersistentVolumes.
```
kubectl -n kubeflow get pvc
```

If the PersistentVolumeClaims (PVCs) are in `Pending` state after deployment and they are not bound to PersistentVolumes (PVs), you may have to either manually create PVs for each PVC in your Kubernetes Cluster or an alternative is to set up [dynamic volume provisioning](#provisioning-of-persistent-volumes-in-kubernetes) to create PVs on demand and redeploy Kubeflow after deleting existing PVCs.

### Next steps

* Run a [sample machine learning workflow](/docs/examples/resources/).
Expand Down

0 comments on commit d09cecc

Please sign in to comment.