<p>I'm trying to start a new Kubernetes cluster on AWS with the following settings:</p>

<pre><code>export KUBERNETES_PROVIDER=aws

export KUBE_AWS_INSTANCE_PREFIX="k8-update-test"
export KUBE_AWS_ZONE="eu-west-1a"
export AWS_S3_REGION="eu-west-1"

export ENABLE_NODE_AUTOSCALER=true

export NON_MASQUERADE_CIDR="10.140.0.0/20"
export SERVICE_CLUSTER_IP_RANGE="10.140.1.0/24"
export DNS_SERVER_IP="10.140.1.10"

export MASTER_IP_RANGE="10.140.2.0/24"
export CLUSTER_IP_RANGE="10.140.3.0/24"
</code></pre>

<p>After running <code>$KUBE_ROOT/cluster/kube-up.sh</code> the master appears and 4 (default) minions are started. Unfortunately only one minion gets read. The result of <code>kubectl get nodes</code> is:</p>

<pre><code>NAME                                         STATUS     AGE
ip-172-20-0-105.eu-west-1.compute.internal   NotReady   19h
ip-172-20-0-106.eu-west-1.compute.internal   NotReady   19h
ip-172-20-0-107.eu-west-1.compute.internal   Ready      19h
ip-172-20-0-108.eu-west-1.compute.internal   NotReady   19h
</code></pre>

<p>Please not that one node is running while 3 are not ready. If I look at the details of a NotReady node I get the following error:</p>

<blockquote>
  <p>ConfigureCBR0 requested, but PodCIDR not set. Will not configure CBR0
  right now.</p>
</blockquote>

<p>If I try to start the cluster with out the settings NON_MASQUERADE_CIDR, SERVICE_CLUSTER_IP_RANGE, DNS_SERVER_IP, MASTER_IP_RANGE and CLUSTER_IP_RANGE everything works fine. All minions get ready as soon as they are started.</p>

<p>Does anyone has an idea why the PodCIDR was only set on one node but not on the other nodes?</p>

<p>One more thing: The same settings worked fine on kubernetes 1.2.4.</p>

<p>Your Cluster IP range is too small. You've allocated a /24 for your entire cluster (255 addresses), and Kubernetes by default will give a /24 to each node. This means that the first node will be allocated <code>10.140.3.0/24</code> and then you won't have any further /24 ranges to allocate to the other nodes in your cluster.</p>

<p>The fact that this worked in 1.2.4 was a bug, because the CIDR allocator wasn't checking that it didn't allocate ranges beyond the cluster ip range (which it now does). Try using a larger range for your cluster (GCE uses a /14 by default, which allows you to scale to 1000 nodes, but you should be fine with a /20 for a small cluster). </p>
