From 5010718979a72f7fca6cc59fc444b1a0911ff72e Mon Sep 17 00:00:00 2001
From: Sheng Yang <sheng@yasker.org>
Date: Wed, 3 Oct 2018 11:52:06 -0700
Subject: [PATCH] Update README.md

---
 README.md | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/README.md b/README.md
index e9758181..237fafd0 100644
--- a/README.md
+++ b/README.md
@@ -80,6 +80,8 @@ NAME                                       CAPACITY   ACCESS MODES   RECLAIM POL
 pvc-bc3117d9-c6d3-11e8-b36d-7a42907dda78   2Gi        RWO            Delete           Bound     default/local-path-pvc   local-path               4s
 ```
 
+If you don't see the PV created, see [troubleshooting](#troubleshooting).
+
 The PVC has been bound:
 ```
 $ kubectl get pvc
@@ -186,6 +188,28 @@ If the reload failed due to some reason, the provisioner will report error in th
 
 >time="2018-10-03T06:39:28Z" level=error msg="failed to load the new config file: config canonicalization failed: duplicate node yasker-lp-dev3"
 
+## Troubleshooting
+
+### PV cannot be created by the provisioner
+
+#### Kubernetes v1.11 feature gate
+
+If you're running Kubernetes v1.11, make sure the feature gate `DynamicProvisioningScheduling` are **enabled on ALL the Kubernetes components on ALL the node**.
+
+The components that needs to enable the feature gate are:
+1. `kube-scheduler`
+2. `kube-controller-manager`
+3. `kubelet`
+4. `kube-api`
+5. `kube-proxy`
+
+You can check each process' log for the following line to confirm the enabling of the feature gate.
+```
+I0929 01:42:47.699142       1 flags.go:27] FLAG: --feature-gates="DynamicProvisioningScheduling=true"
+```
+
+This log line should present in all the components' log listed above.
+
 ## Uninstall
 
 Before uninstallation, make sure the PVs created by the provisioner has already been deleted. Use `kubectl get pv` and make sure no PV with StorageClass `local-path`.
-- 
GitLab