By default GKE does not use SSD for Persistance Volumes (PV), which is a little annoying since that is usually what I am looking for. I bumped into this while deploying a helm chart, then googling around for “helm pv pending” and “helm ssd pv stuck” to resolve the resource never being allocated.
While there is documentation on gcp, I started off a chart that recommended setting using
--set storageClassName=faster to avoid using the standard non-ssd storage type.
On a vanilla setup, this will leave a PV stuck in pending, even after you have
gotten a coffee.
You will need to define a storage class with the
metadata.name field is what your ssd PV type will be available as
# ssd-pv.yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ssd provisioner: kubernetes.io/gce-pd parameters: type: pd-ssd
kubectl apply -f ssd-pv.yaml
Now we can use
--set storageClassName=ssd to get a SSD PV storage. Now
looking back at the helm documentation, it is obvious that the author had
indended the reader to have set
metadata.name=faster as the name for SSD storage
before installing the chart
The google documentation is over here: https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/ssd-pd