<p>I create a Deployment with a volumeMount that references a PersistentVolumeClaim along with a memory request on a cluster with nodes in 3 difference AZs us-west-2a, us-west-2b, and us-west-2c.</p>

<p>The Deployment takes a while to start while the PersistentVolume is being dynamically created but they both eventually start up.</p>

<p>The problem I am running into is that the PersistentVolume is made in us-west-2c and the only node the pod can run on is already over allocated.</p>

<p>Is there a way for me  to create the Deployment and claim such that the claim is not made in a region where no pod can start up?</p>

Michael
<p>I believe you're looking for <a href="https://kubernetes.io/docs/concepts/storage/dynamic-provisioning/#topology-awareness" rel="nofollow noreferrer">Topology Awareness</a> feature.</p>

<blockquote>
  <p>Topology Awareness </p>
  
  <p>In Multi-Zone clusters, Pods can be spread across
  Zones in a Region. Single-Zone storage backends should be provisioned
  in the Zones where Pods are scheduled. This can be accomplished by
  setting the Volume Binding Mode.</p>
</blockquote>

<p>Kubernetes released <a href="https://kubernetes.io/blog/2018/10/11/topology-aware-volume-provisioning-in-kubernetes/" rel="nofollow noreferrer">topology-aware dynamic provisioning feature</a> with kubernetes version 1.12, and I believe this will solve your issue.</p>
