mirror of https://github.com/k3s-io/k3s
Make AWS node sizes dynamic in the number of nodes.
parent
d3862d453f
commit
d32e713b77
|
@ -15,10 +15,33 @@
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
ZONE=${KUBE_AWS_ZONE:-us-west-2a}
|
ZONE=${KUBE_AWS_ZONE:-us-west-2a}
|
||||||
MASTER_SIZE=${MASTER_SIZE:-t2.micro}
|
MASTER_SIZE=${MASTER_SIZE:-}
|
||||||
MINION_SIZE=${MINION_SIZE:-t2.micro}
|
MINION_SIZE=${MINION_SIZE:-}
|
||||||
NUM_MINIONS=${NUM_MINIONS:-4}
|
NUM_MINIONS=${NUM_MINIONS:-4}
|
||||||
|
|
||||||
|
# Dynamically set node sizes so that Heapster has enough space to run
|
||||||
|
if [[ -z ${MINION_SIZE} ]]; then
|
||||||
|
if (( ${NUM_MINIONS} < 50 )); then
|
||||||
|
MINION_SIZE="t2.micro"
|
||||||
|
elif (( ${NUM_MINIONS} < 150 )); then
|
||||||
|
MINION_SIZE="t2.small"
|
||||||
|
else
|
||||||
|
MINION_SIZE="t2.medium"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Dynamically set the master size by the number of nodes, these are guesses
|
||||||
|
# TODO: gather some data
|
||||||
|
if [[ -z ${MASTER_SIZE} ]]; then
|
||||||
|
if (( ${NUM_MINIONS} < 50 )); then
|
||||||
|
MASTER_SIZE="t2.micro"
|
||||||
|
elif (( ${NUM_MINIONS} < 150 )); then
|
||||||
|
MASTER_SIZE="t2.small"
|
||||||
|
else
|
||||||
|
MASTER_SIZE="t2.medium"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Optional: Set AWS_S3_BUCKET to the name of an S3 bucket to use for uploading binaries
|
# Optional: Set AWS_S3_BUCKET to the name of an S3 bucket to use for uploading binaries
|
||||||
# (otherwise a unique bucket name will be generated for you)
|
# (otherwise a unique bucket name will be generated for you)
|
||||||
# AWS_S3_BUCKET=kubernetes-artifacts
|
# AWS_S3_BUCKET=kubernetes-artifacts
|
||||||
|
|
|
@ -15,10 +15,35 @@
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
ZONE=${KUBE_AWS_ZONE:-us-west-2a}
|
ZONE=${KUBE_AWS_ZONE:-us-west-2a}
|
||||||
MASTER_SIZE=${MASTER_SIZE:-t2.micro}
|
|
||||||
MINION_SIZE=${MINION_SIZE:-t2.micro}
|
MASTER_SIZE=${MASTER_SIZE:-}
|
||||||
|
MINION_SIZE=${MINION_SIZE:-}
|
||||||
NUM_MINIONS=${NUM_MINIONS:-2}
|
NUM_MINIONS=${NUM_MINIONS:-2}
|
||||||
|
|
||||||
|
# Dynamically set node sizes so that Heapster has enough space to run
|
||||||
|
if [[ -z ${MINION_SIZE} ]]; then
|
||||||
|
if (( ${NUM_MINIONS} < 50 )); then
|
||||||
|
MINION_SIZE="t2.micro"
|
||||||
|
elif (( ${NUM_MINIONS} < 150 )); then
|
||||||
|
MINION_SIZE="t2.small"
|
||||||
|
else
|
||||||
|
MINION_SIZE="t2.medium"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Dynamically set the master size by the number of nodes, these are guesses
|
||||||
|
# TODO: gather some data
|
||||||
|
if [[ -z ${MASTER_SIZE} ]]; then
|
||||||
|
if (( ${NUM_MINIONS} < 50 )); then
|
||||||
|
MASTER_SIZE="t2.micro"
|
||||||
|
elif (( ${NUM_MINIONS} < 150 )); then
|
||||||
|
MASTER_SIZE="t2.small"
|
||||||
|
else
|
||||||
|
MASTER_SIZE="t2.medium"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Because regions are globally named, we want to create in a single region; default to us-east-1
|
# Because regions are globally named, we want to create in a single region; default to us-east-1
|
||||||
AWS_S3_REGION=${AWS_S3_REGION:-us-east-1}
|
AWS_S3_REGION=${AWS_S3_REGION:-us-east-1}
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ AWS_S3_REGION is useful for people that want to control their data location, bec
|
||||||
|
|
||||||
**MASTER_SIZE**, **MINION_SIZE**
|
**MASTER_SIZE**, **MINION_SIZE**
|
||||||
|
|
||||||
The instance type to use for creating the master/minion. Defaults to t2.micro.
|
The instance type to use for creating the master/minion. Defaults to auto-sizing based on the number of nodes (see below).
|
||||||
|
|
||||||
For production usage, we recommend bigger instances, for example:
|
For production usage, we recommend bigger instances, for example:
|
||||||
|
|
||||||
|
@ -38,6 +38,10 @@ export MASTER_SIZE=c4.large
|
||||||
export MINION_SIZE=r3.large
|
export MINION_SIZE=r3.large
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If you don't specify master and minion sizes, the scripts will attempt to guess the correct size of the master and worker nodes based on `${NUM_MINIONS}`.
|
||||||
|
In particular for clusters less than 50 nodes it will
|
||||||
|
use a `t2.micro` for clusters between 50 and 150 nodes it will use a `t2.small` and for clusters with greater than 150 nodes it will use a `t2.medium`.
|
||||||
|
|
||||||
Please note: `kube-up` utilizes ephemeral storage available on instances for docker storage. EBS-only instance types do not
|
Please note: `kube-up` utilizes ephemeral storage available on instances for docker storage. EBS-only instance types do not
|
||||||
support ephemeral storage and will default to docker storage on the root disk which is usually only 8GB.
|
support ephemeral storage and will default to docker storage on the root disk which is usually only 8GB.
|
||||||
EBS-only instance types include `t2`, `c4`, and `m4`.
|
EBS-only instance types include `t2`, `c4`, and `m4`.
|
||||||
|
|
|
@ -91,6 +91,9 @@ export INSTANCE_PREFIX=k8s
|
||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
The scripts will attempt to guess the correct size of the master and worker nodes based on `${NUM_MINIONS}`, in particular for clusters less than 50 nodes it will
|
||||||
|
use a `t2.micro` for clusters between 50 and 150 nodes it will use a `t2.small` and for clusters with greater than 150 nodes it will use a `t2.medium`.
|
||||||
|
|
||||||
It will also try to create or reuse a keypair called "kubernetes", and IAM profiles called "kubernetes-master" and "kubernetes-minion".
|
It will also try to create or reuse a keypair called "kubernetes", and IAM profiles called "kubernetes-master" and "kubernetes-minion".
|
||||||
If these already exist, make sure you want them to be used here.
|
If these already exist, make sure you want them to be used here.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue