Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
64f66068
Commit
64f66068
authored
Jun 14, 2017
by
gmarek
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make big clusters work again after introduction of subnets
parent
4fd040af
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
75 additions
and
11 deletions
+75
-11
config-common.sh
cluster/gce/config-common.sh
+19
-0
config-default.sh
cluster/gce/config-default.sh
+5
-3
config-test.sh
cluster/gce/config-test.sh
+3
-1
util.sh
cluster/gce/util.sh
+46
-5
config-default.sh
cluster/kubemark/gce/config-default.sh
+1
-1
util.sh
test/kubemark/gce/util.sh
+1
-1
No files found.
cluster/gce/config-common.sh
View file @
64f66068
...
@@ -36,6 +36,25 @@ function get-master-size {
...
@@ -36,6 +36,25 @@ function get-master-size {
echo
"
${
suggested_master_size
}
"
echo
"
${
suggested_master_size
}
"
}
}
function
get-node-ip-range
{
if
[[
-n
"
${
NODE_IP_RANGE
:-}
"
]]
;
then
>
&2
echo
"Using user provided NODE_IP_RANGE:
${
NODE_IP_RANGE
}
"
echo
"
${
NODE_IP_RANGE
}
"
return
fi
local
suggested_range
=
"10.40.0.0/22"
if
[[
"
${
NUM_NODES
}
"
-gt
1000
]]
;
then
suggested_range
=
"10.40.0.0/21"
fi
if
[[
"
${
NUM_NODES
}
"
-gt
2000
]]
;
then
suggested_range
=
"10.40.0.0/20"
fi
if
[[
"
${
NUM_NODES
}
"
-gt
4000
]]
;
then
suggested_range
=
"10.40.0.0/19"
fi
echo
"
${
suggested_range
}
"
}
if
[[
"
${
FEDERATION
:-}
"
==
true
]]
;
then
if
[[
"
${
FEDERATION
:-}
"
==
true
]]
;
then
NODE_SCOPES
=
"
${
NODE_SCOPES
:-
compute
-rw,monitoring,logging-write,storage-ro,https
://www.googleapis.com/auth/ndev.clouddns.readwrite
}
"
NODE_SCOPES
=
"
${
NODE_SCOPES
:-
compute
-rw,monitoring,logging-write,storage-ro,https
://www.googleapis.com/auth/ndev.clouddns.readwrite
}
"
else
else
...
...
cluster/gce/config-default.sh
View file @
64f66068
...
@@ -218,7 +218,7 @@ if [ ${ENABLE_IP_ALIASES} = true ]; then
...
@@ -218,7 +218,7 @@ if [ ${ENABLE_IP_ALIASES} = true ]; then
SERVICE_CLUSTER_IP_SUBNETWORK
=
${
KUBE_GCE_SERVICE_CLUSTER_IP_SUBNETWORK
:-${
INSTANCE_PREFIX
}
-subnet-services
}
SERVICE_CLUSTER_IP_SUBNETWORK
=
${
KUBE_GCE_SERVICE_CLUSTER_IP_SUBNETWORK
:-${
INSTANCE_PREFIX
}
-subnet-services
}
# NODE_IP_RANGE is used when ENABLE_IP_ALIASES=true. It is the primary range in
# NODE_IP_RANGE is used when ENABLE_IP_ALIASES=true. It is the primary range in
# the subnet and is the range used for node instance IPs.
# the subnet and is the range used for node instance IPs.
NODE_IP_RANGE
=
"
$
{
NODE_IP_RANGE
:-
10
.40.0.0/22
}
"
NODE_IP_RANGE
=
"
$
(
get-node-ip-range
)
"
# Add to the provider custom variables.
# Add to the provider custom variables.
PROVIDER_VARS
=
"
${
PROVIDER_VARS
}
ENABLE_IP_ALIASES"
PROVIDER_VARS
=
"
${
PROVIDER_VARS
}
ENABLE_IP_ALIASES"
fi
fi
...
@@ -245,7 +245,7 @@ NETWORK_POLICY_PROVIDER="${NETWORK_POLICY_PROVIDER:-none}" # calico
...
@@ -245,7 +245,7 @@ NETWORK_POLICY_PROVIDER="${NETWORK_POLICY_PROVIDER:-none}" # calico
# How should the kubelet configure hairpin mode?
# How should the kubelet configure hairpin mode?
HAIRPIN_MODE
=
"
${
HAIRPIN_MODE
:-
promiscuous
-bridge
}
"
# promiscuous-bridge, hairpin-veth, none
HAIRPIN_MODE
=
"
${
HAIRPIN_MODE
:-
promiscuous
-bridge
}
"
# promiscuous-bridge, hairpin-veth, none
# Optional: if set to true, kube-up will configure the cluster to run e2e tests.
# Optional: if set to true, kube-up will configure the cluster to run e2e tests.
E2E_STORAGE_TEST_ENVIRONMENT
=
${
KUBE_E2E_STORAGE_TEST_ENVIRONMENT
:-
false
}
E2E_STORAGE_TEST_ENVIRONMENT
=
"
${
KUBE_E2E_STORAGE_TEST_ENVIRONMENT
:-
false
}
"
# Evict pods whenever compute resource availability on the nodes gets below a threshold.
# Evict pods whenever compute resource availability on the nodes gets below a threshold.
EVICTION_HARD
=
"
${
EVICTION_HARD
:-
memory
.available<250Mi,nodefs.available<10%,nodefs.inodesFree<5%
}
"
EVICTION_HARD
=
"
${
EVICTION_HARD
:-
memory
.available<250Mi,nodefs.available<10%,nodefs.inodesFree<5%
}
"
...
@@ -266,4 +266,6 @@ SOFTLOCKUP_PANIC="${SOFTLOCKUP_PANIC:-false}" # true, false
...
@@ -266,4 +266,6 @@ SOFTLOCKUP_PANIC="${SOFTLOCKUP_PANIC:-false}" # true, false
# Indicates if the values (i.e. KUBE_USER and KUBE_PASSWORD for basic
# Indicates if the values (i.e. KUBE_USER and KUBE_PASSWORD for basic
# authentication) in metadata should be treated as canonical, and therefore disk
# authentication) in metadata should be treated as canonical, and therefore disk
# copies ought to be recreated/clobbered.
# copies ought to be recreated/clobbered.
METADATA_CLOBBERS_CONFIG
=
${
METADATA_CLOBBERS_CONFIG
:-
false
}
METADATA_CLOBBERS_CONFIG
=
"
${
METADATA_CLOBBERS_CONFIG
:-
false
}
"
ENABLE_BIG_CLUSTER_SUBNETS
=
"
${
ENABLE_BIG_CLUSTER_SUBNETS
:-
false
}
"
cluster/gce/config-test.sh
View file @
64f66068
...
@@ -91,7 +91,7 @@ CLUSTER_IP_RANGE="${CLUSTER_IP_RANGE:-10.100.0.0/14}"
...
@@ -91,7 +91,7 @@ CLUSTER_IP_RANGE="${CLUSTER_IP_RANGE:-10.100.0.0/14}"
MASTER_IP_RANGE
=
"
${
MASTER_IP_RANGE
:-
10
.246.0.0/24
}
"
MASTER_IP_RANGE
=
"
${
MASTER_IP_RANGE
:-
10
.246.0.0/24
}
"
# NODE_IP_RANGE is used when ENABLE_IP_ALIASES=true. It is the primary range in
# NODE_IP_RANGE is used when ENABLE_IP_ALIASES=true. It is the primary range in
# the subnet and is the range used for node instance IPs.
# the subnet and is the range used for node instance IPs.
NODE_IP_RANGE
=
"
$
{
NODE_IP_RANGE
:-
10
.40.0.0/22
}
"
NODE_IP_RANGE
=
"
$
(
get-node-ip-range
)
"
RUNTIME_CONFIG
=
"
${
KUBE_RUNTIME_CONFIG
:-}
"
RUNTIME_CONFIG
=
"
${
KUBE_RUNTIME_CONFIG
:-}
"
...
@@ -315,3 +315,5 @@ ENABLE_APISERVER_ADVANCED_AUDIT="${ENABLE_APISERVER_ADVANCED_AUDIT:-true}" # tru
...
@@ -315,3 +315,5 @@ ENABLE_APISERVER_ADVANCED_AUDIT="${ENABLE_APISERVER_ADVANCED_AUDIT:-true}" # tru
if
[[
"
${
ENABLE_APISERVER_ADVANCED_AUDIT
}
"
==
"true"
]]
;
then
if
[[
"
${
ENABLE_APISERVER_ADVANCED_AUDIT
}
"
==
"true"
]]
;
then
FEATURE_GATES
=
"
${
FEATURE_GATES
}
,AdvancedAuditing=true"
FEATURE_GATES
=
"
${
FEATURE_GATES
}
,AdvancedAuditing=true"
fi
fi
ENABLE_BIG_CLUSTER_SUBNETS
=
"
${
ENABLE_BIG_CLUSTER_SUBNETS
:-
false
}
"
cluster/gce/util.sh
View file @
64f66068
...
@@ -88,6 +88,8 @@ NODE_INSTANCE_PREFIX="${INSTANCE_PREFIX}-minion"
...
@@ -88,6 +88,8 @@ NODE_INSTANCE_PREFIX="${INSTANCE_PREFIX}-minion"
NODE_TAGS
=
"
${
NODE_TAG
}
"
NODE_TAGS
=
"
${
NODE_TAG
}
"
ALLOCATE_NODE_CIDRS
=
true
ALLOCATE_NODE_CIDRS
=
true
PREEXISTING_NETWORK
=
false
PREEXISTING_NETWORK_MODE
=
""
KUBE_PROMPT_FOR_UPDATE
=
${
KUBE_PROMPT_FOR_UPDATE
:-
"n"
}
KUBE_PROMPT_FOR_UPDATE
=
${
KUBE_PROMPT_FOR_UPDATE
:-
"n"
}
# How long (in seconds) to wait for cluster initialization.
# How long (in seconds) to wait for cluster initialization.
...
@@ -508,7 +510,11 @@ function make-gcloud-network-argument() {
...
@@ -508,7 +510,11 @@ function make-gcloud-network-argument() {
ret
=
"
${
ret
}
,aliases=pods-default:
${
alias_size
}
"
ret
=
"
${
ret
}
,aliases=pods-default:
${
alias_size
}
"
ret
=
"
${
ret
}
--no-can-ip-forward"
ret
=
"
${
ret
}
--no-can-ip-forward"
else
else
ret
=
"--network
${
network
}
"
if
[[
${
PREEXISTING_NETWORK
}
=
"true"
&&
"
${
PREEXISTING_NETWORK_MODE
}
"
!=
"custom"
]]
;
then
ret
=
"--network
${
network
}
"
else
ret
=
"--subnet=
${
network
}
"
fi
ret
=
"
${
ret
}
--can-ip-forward"
ret
=
"
${
ret
}
--can-ip-forward"
if
[[
-n
${
address
:-}
]]
;
then
if
[[
-n
${
address
:-}
]]
;
then
ret
=
"
${
ret
}
--address
${
address
}
"
ret
=
"
${
ret
}
--address
${
address
}
"
...
@@ -746,6 +752,10 @@ function create-network() {
...
@@ -746,6 +752,10 @@ function create-network() {
# The network needs to be created synchronously or we have a race. The
# The network needs to be created synchronously or we have a race. The
# firewalls can be added concurrent with instance creation.
# firewalls can be added concurrent with instance creation.
gcloud compute networks create
--project
"
${
PROJECT
}
"
"
${
NETWORK
}
"
--mode
=
auto
gcloud compute networks create
--project
"
${
PROJECT
}
"
"
${
NETWORK
}
"
--mode
=
auto
else
PREEXISTING_NETWORK
=
true
PREEXISTING_NETWORK_MODE
=
"
$(
gcloud compute networks list
${
NETWORK
}
--format
=
'value(x_gcloud_mode)'
||
true
)
"
echo
"Found existing network
${
NETWORK
}
in
${
PREEXISTING_NETWORK_MODE
}
mode."
fi
fi
if
!
gcloud compute firewall-rules
--project
"
${
PROJECT
}
"
describe
"
${
CLUSTER_NAME
}
-default-internal-master"
&>/dev/null
;
then
if
!
gcloud compute firewall-rules
--project
"
${
PROJECT
}
"
describe
"
${
CLUSTER_NAME
}
-default-internal-master"
&>/dev/null
;
then
...
@@ -775,10 +785,31 @@ function create-network() {
...
@@ -775,10 +785,31 @@ function create-network() {
fi
fi
}
}
function
expand-default-subnetwork
()
{
gcloud compute networks switch-mode
"
${
NETWORK
}
"
\
--mode
custom
\
--project
"
${
PROJECT
}
"
\
--quiet
||
true
gcloud compute networks subnets expand-ip-range
"
${
NETWORK
}
"
\
--region
=
"
${
REGION
}
"
\
--project
"
${
PROJECT
}
"
\
--prefix-length
=
19
\
--quiet
}
function
create-subnetworks
()
{
function
create-subnetworks
()
{
case
${
ENABLE_IP_ALIASES
}
in
case
${
ENABLE_IP_ALIASES
}
in
true
)
;;
true
)
echo
"IP aliases are enabled. Creating subnetworks."
;;
false
)
return
;;
false
)
echo
"IP aliases are disabled."
if
[[
"
${
ENABLE_BIG_CLUSTER_SUBNETS
}
"
=
"true"
]]
;
then
if
[[
"
${
PREEXISTING_NETWORK
}
"
!=
"true"
]]
;
then
expand-default-subnetwork
else
echo
"
${
color_yellow
}
Using pre-existing network
${
NETWORK
}
, subnets won't be expanded to /19!
${
color_norm
}
"
fi
fi
return
;;
*
)
echo
"
${
color_red
}
Invalid argument to ENABLE_IP_ALIASES
${
color_norm
}
"
*
)
echo
"
${
color_red
}
Invalid argument to ENABLE_IP_ALIASES
${
color_norm
}
"
exit
1
;;
exit
1
;;
esac
esac
...
@@ -867,6 +898,17 @@ function delete-network() {
...
@@ -867,6 +898,17 @@ function delete-network() {
function
delete-subnetworks
()
{
function
delete-subnetworks
()
{
if
[[
${
ENABLE_IP_ALIASES
:-}
!=
"true"
]]
;
then
if
[[
${
ENABLE_IP_ALIASES
:-}
!=
"true"
]]
;
then
if
[[
"
${
ENABLE_BIG_CLUSTER_SUBNETS
}
"
=
"true"
]]
;
then
# If running in custom mode network we need to delete subnets
mode
=
"
$(
gcloud compute networks list
${
NETWORK
}
--format
=
'value(x_gcloud_mode)'
||
true
)
"
if
[[
"
${
mode
}
"
==
"custom"
]]
;
then
echo
"Deleting default subnets..."
# This value should be kept in sync with number of regions.
local
parallelism
=
9
gcloud compute networks subnets list
--network
=
"
${
NETWORK
}
"
--format
=
'value(region.basename())'
|
\
xargs
-i
-P
${
parallelism
}
gcloud
--quiet
compute networks subnets delete
"
${
NETWORK
}
"
--region
=
"{}"
||
true
fi
fi
return
return
fi
fi
...
@@ -1612,9 +1654,8 @@ function kube-down() {
...
@@ -1612,9 +1654,8 @@ function kube-down() {
"
${
NETWORK
}
-default-ssh"
\
"
${
NETWORK
}
-default-ssh"
\
"
${
NETWORK
}
-default-internal"
# Pre-1.5 clusters
"
${
NETWORK
}
-default-internal"
# Pre-1.5 clusters
delete-subnetworks
if
[[
"
${
KUBE_DELETE_NETWORK
}
"
==
"true"
]]
;
then
if
[[
"
${
KUBE_DELETE_NETWORK
}
"
==
"true"
]]
;
then
delete-subnetworks
||
true
delete-network
||
true
# might fail if there are leaked firewall rules
delete-network
||
true
# might fail if there are leaked firewall rules
fi
fi
...
...
cluster/kubemark/gce/config-default.sh
View file @
64f66068
...
@@ -39,7 +39,7 @@ NODE_OS_DISTRIBUTION=${KUBE_NODE_OS_DISTRIBUTION:-debian}
...
@@ -39,7 +39,7 @@ NODE_OS_DISTRIBUTION=${KUBE_NODE_OS_DISTRIBUTION:-debian}
MASTER_IMAGE
=
${
KUBE_GCE_MASTER_IMAGE
:-
cos
-stable-59-9460-64-0
}
MASTER_IMAGE
=
${
KUBE_GCE_MASTER_IMAGE
:-
cos
-stable-59-9460-64-0
}
MASTER_IMAGE_PROJECT
=
${
KUBE_GCE_MASTER_PROJECT
:-
cos
-cloud
}
MASTER_IMAGE_PROJECT
=
${
KUBE_GCE_MASTER_PROJECT
:-
cos
-cloud
}
NETWORK
=
${
KUBE_GCE_NETWORK
:-
default
}
NETWORK
=
${
KUBE_GCE_NETWORK
:-
e2e
}
INSTANCE_PREFIX
=
"
${
INSTANCE_PREFIX
:-
"default"
}
"
INSTANCE_PREFIX
=
"
${
INSTANCE_PREFIX
:-
"default"
}
"
MASTER_NAME
=
"
${
INSTANCE_PREFIX
}
-kubemark-master"
MASTER_NAME
=
"
${
INSTANCE_PREFIX
}
-kubemark-master"
AGGREGATOR_MASTER_NAME
=
"
${
INSTANCE_PREFIX
}
-kubemark-aggregator"
AGGREGATOR_MASTER_NAME
=
"
${
INSTANCE_PREFIX
}
-kubemark-aggregator"
...
...
test/kubemark/gce/util.sh
View file @
64f66068
...
@@ -80,7 +80,7 @@ function create-master-instance-with-resources {
...
@@ -80,7 +80,7 @@ function create-master-instance-with-resources {
--image-project
=
"
${
MASTER_IMAGE_PROJECT
}
"
\
--image-project
=
"
${
MASTER_IMAGE_PROJECT
}
"
\
--image
"
${
MASTER_IMAGE
}
"
\
--image
"
${
MASTER_IMAGE
}
"
\
--tags
"
${
MASTER_TAG
}
"
\
--tags
"
${
MASTER_TAG
}
"
\
--
network
"
${
NETWORK
}
"
\
--
subnet
"
${
NETWORK
}
"
\
--scopes
"storage-ro,compute-rw,logging-write"
\
--scopes
"storage-ro,compute-rw,logging-write"
\
--boot-disk-size
"
${
MASTER_ROOT_DISK_SIZE
}
"
\
--boot-disk-size
"
${
MASTER_ROOT_DISK_SIZE
}
"
\
--disk
"name=
${
MASTER_NAME
}
-pd,device-name=master-pd,mode=rw,boot=no,auto-delete=no"
--disk
"name=
${
MASTER_NAME
}
-pd,device-name=master-pd,mode=rw,boot=no,auto-delete=no"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment