Skip to content

Commit 0b04415

Browse files
author
k8s-merge-robot
committed
Merge pull request kubernetes#20806 from gmarek/fix
Auto commit by PR queue bot
2 parents e83a0d1 + 208e98b commit 0b04415

File tree

1 file changed

+49
-23
lines changed

1 file changed

+49
-23
lines changed

cluster/gce/util.sh

+49-23
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,9 @@ function kube-up {
473473
find-release-tars
474474
upload-server-tars
475475

476+
# ensure that environmental variables specifying number of migs to create
477+
set_num_migs
478+
476479
if [[ ${KUBE_USE_EXISTING_MASTER:-} == "true" ]]; then
477480
create-nodes
478481
create-autoscaler
@@ -616,21 +619,35 @@ function create-nodes-template() {
616619
create-node-instance-template $template_name
617620
}
618621

619-
function create-nodes() {
620-
local template_name="${NODE_INSTANCE_PREFIX}-template"
621-
622+
# Assumes:
623+
# - MAX_INSTANCES_PER_MIG
624+
# - NUM_NODES
625+
# exports:
626+
# - NUM_MIGS
627+
function set_num_migs() {
622628
local defaulted_max_instances_per_mig=${MAX_INSTANCES_PER_MIG:-500}
623629

624630
if [[ ${defaulted_max_instances_per_mig} -le "0" ]]; then
625631
echo "MAX_INSTANCES_PER_MIG cannot be negative. Assuming default 500"
626632
defaulted_max_instances_per_mig=500
627633
fi
628-
local num_migs=$(((${NUM_NODES} + ${defaulted_max_instances_per_mig} - 1) / ${defaulted_max_instances_per_mig}))
629-
local instances_per_mig=$(((${NUM_NODES} + ${num_migs} - 1) / ${num_migs}))
630-
local last_mig_size=$((${NUM_NODES} - (${num_migs} - 1) * ${instances_per_mig}))
634+
export NUM_MIGS=$(((${NUM_NODES} + ${defaulted_max_instances_per_mig} - 1) / ${defaulted_max_instances_per_mig}))
635+
}
636+
637+
# Assumes:
638+
# - NUM_MIGS
639+
# - NODE_INSTANCE_PREFIX
640+
# - NUM_NODES
641+
# - PROJECT
642+
# - ZONE
643+
function create-nodes() {
644+
local template_name="${NODE_INSTANCE_PREFIX}-template"
645+
646+
local instances_per_mig=$(((${NUM_NODES} + ${NUM_MIGS} - 1) / ${NUM_MIGS}))
647+
local last_mig_size=$((${NUM_NODES} - (${NUM_MIGS} - 1) * ${instances_per_mig}))
631648

632649
#TODO: parallelize this loop to speed up the process
633-
for i in $(seq $((${num_migs} - 1))); do
650+
for i in $(seq $((${NUM_MIGS} - 1))); do
634651
gcloud compute instance-groups managed \
635652
create "${NODE_INSTANCE_PREFIX}-group-$i" \
636653
--project "${PROJECT}" \
@@ -659,35 +676,44 @@ function create-nodes() {
659676
--project "${PROJECT}" || true;
660677
}
661678

679+
# Assumes:
680+
# - NUM_MIGS
681+
# - NODE_INSTANCE_PREFIX
682+
# - PROJECT
683+
# - ZONE
684+
# - ENABLE_NODE_AUTOSCALER
685+
# - TARGET_NODE_UTILIZATION\
686+
# - AUTOSCALER_MAX_NODES
687+
# - AUTOSCALER_MIN_NODES
662688
function create-autoscaler() {
663689
# Create autoscaler for nodes if requested
664690
if [[ "${ENABLE_NODE_AUTOSCALER}" == "true" ]]; then
665-
METRICS=""
691+
local metrics=""
666692
# Current usage
667-
METRICS+="--custom-metric-utilization metric=custom.cloudmonitoring.googleapis.com/kubernetes.io/cpu/node_utilization,"
668-
METRICS+="utilization-target=${TARGET_NODE_UTILIZATION},utilization-target-type=GAUGE "
669-
METRICS+="--custom-metric-utilization metric=custom.cloudmonitoring.googleapis.com/kubernetes.io/memory/node_utilization,"
670-
METRICS+="utilization-target=${TARGET_NODE_UTILIZATION},utilization-target-type=GAUGE "
693+
metrics+="--custom-metric-utilization metric=custom.cloudmonitoring.googleapis.com/kubernetes.io/cpu/node_utilization,"
694+
metrics+="utilization-target=${TARGET_NODE_UTILIZATION},utilization-target-type=GAUGE "
695+
metrics+="--custom-metric-utilization metric=custom.cloudmonitoring.googleapis.com/kubernetes.io/memory/node_utilization,"
696+
metrics+="utilization-target=${TARGET_NODE_UTILIZATION},utilization-target-type=GAUGE "
671697

672698
# Reservation
673-
METRICS+="--custom-metric-utilization metric=custom.cloudmonitoring.googleapis.com/kubernetes.io/cpu/node_reservation,"
674-
METRICS+="utilization-target=${TARGET_NODE_UTILIZATION},utilization-target-type=GAUGE "
675-
METRICS+="--custom-metric-utilization metric=custom.cloudmonitoring.googleapis.com/kubernetes.io/memory/node_reservation,"
676-
METRICS+="utilization-target=${TARGET_NODE_UTILIZATION},utilization-target-type=GAUGE "
699+
metrics+="--custom-metric-utilization metric=custom.cloudmonitoring.googleapis.com/kubernetes.io/cpu/node_reservation,"
700+
metrics+="utilization-target=${TARGET_NODE_UTILIZATION},utilization-target-type=GAUGE "
701+
metrics+="--custom-metric-utilization metric=custom.cloudmonitoring.googleapis.com/kubernetes.io/memory/node_reservation,"
702+
metrics+="utilization-target=${TARGET_NODE_UTILIZATION},utilization-target-type=GAUGE "
677703

678704
echo "Creating node autoscalers."
679705

680-
local max_instances_per_mig=$(((${AUTOSCALER_MAX_NODES} + ${num_migs} - 1) / ${num_migs}))
681-
local last_max_instances=$((${AUTOSCALER_MAX_NODES} - (${num_migs} - 1) * ${max_instances_per_mig}))
682-
local min_instances_per_mig=$(((${AUTOSCALER_MIN_NODES} + ${num_migs} - 1) / ${num_migs}))
683-
local last_min_instances=$((${AUTOSCALER_MIN_NODES} - (${num_migs} - 1) * ${min_instances_per_mig}))
706+
local max_instances_per_mig=$(((${AUTOSCALER_MAX_NODES} + ${NUM_MIGS} - 1) / ${NUM_MIGS}))
707+
local last_max_instances=$((${AUTOSCALER_MAX_NODES} - (${NUM_MIGS} - 1) * ${max_instances_per_mig}))
708+
local min_instances_per_mig=$(((${AUTOSCALER_MIN_NODES} + ${NUM_MIGS} - 1) / ${NUM_MIGS}))
709+
local last_min_instances=$((${AUTOSCALER_MIN_NODES} - (${NUM_MIGS} - 1) * ${min_instances_per_mig}))
684710

685-
for i in $(seq $((${num_migs} - 1))); do
711+
for i in $(seq $((${NUM_MIGS} - 1))); do
686712
gcloud compute instance-groups managed set-autoscaling "${NODE_INSTANCE_PREFIX}-group-$i" --zone "${ZONE}" --project "${PROJECT}" \
687-
--min-num-replicas "${min_instances_per_mig}" --max-num-replicas "${max_instances_per_mig}" ${METRICS} || true
713+
--min-num-replicas "${min_instances_per_mig}" --max-num-replicas "${max_instances_per_mig}" ${metrics} || true
688714
done
689715
gcloud compute instance-groups managed set-autoscaling "${NODE_INSTANCE_PREFIX}-group" --zone "${ZONE}" --project "${PROJECT}" \
690-
--min-num-replicas "${last_min_instances}" --max-num-replicas "${last_max_instances}" ${METRICS} || true
716+
--min-num-replicas "${last_min_instances}" --max-num-replicas "${last_max_instances}" ${metrics} || true
691717
fi
692718
}
693719

0 commit comments

Comments
 (0)