<p>The <a href="https://kubernetes.io/docs/concepts/storage/volumes/" rel="nofollow noreferrer">documentation</a> doesn’t go into detail. I imagine I would at least need an iam role. </p>

mdornfe1
<p>This is what we have done and it worked well.</p>

<p>I was on kubernetes 1.7.2 and trying to provision storage (dynamic/static) for kubernetes pods on AWS. Some of the things mentioned below may not be needed if you are not looking for dynamic storage classes.</p>

<p>Made sure that the DefaultStorageClass admission controller is enabled on the API server. (DefaultStorageClass is among the comma-delimited, ordered list of values for the --enable-admission-plugins flag of the API server component.)</p>

<p>I have given options --cloud-provider=aws and --cloud-config=/etc/aws/aws.config (while starting apiserver, controller-manager, kubelet)
(the file /etc/aws/aws.conf is present on instance with below contents)</p>

<pre><code>$ cat /etc/aws/aws.conf
[Global]
Zone = us-west-2a
</code></pre>

<p>Created IAM policy added to role (as in link below), created instance profile for it and attached to the instances. (NOTE: I missed attaching instance profile and it did not work).
<a href="https://medium.com/@samnco/using-aws-elbs-with-the-canonical-distribution-of-kubernetes-9b4d198e2101" rel="nofollow noreferrer">https://medium.com/@samnco/using-aws-elbs-with-the-canonical-distribution-of-kubernetes-9b4d198e2101</a></p>

<p>For dynamic provisioning:
Created storage class and made it default.</p>

<p>Let me know it this did not work.</p>

<p>Regards
Sudhakar</p>
