mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-11-04 07:49:35 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			122 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
# Copyright 2015 The Kubernetes Authors.
 | 
						|
#
 | 
						|
# Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
# you may not use this file except in compliance with the License.
 | 
						|
# You may obtain a copy of the License at
 | 
						|
#
 | 
						|
#     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
#
 | 
						|
# Unless required by applicable law or agreed to in writing, software
 | 
						|
# distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
# See the License for the specific language governing permissions and
 | 
						|
# limitations under the License.
 | 
						|
 | 
						|
## Contains configuration values for the Ubuntu cluster
 | 
						|
 | 
						|
# Define all your cluster nodes, MASTER node comes first"
 | 
						|
# And separated with blank space like <user_1@ip_1> <user_2@ip_2> <user_3@ip_3>
 | 
						|
export nodes=${nodes:-"vcap@10.10.103.250 vcap@10.10.103.162 vcap@10.10.103.223"}
 | 
						|
 | 
						|
# Define all your nodes role: a(master) or i(minion) or ai(both master and minion),
 | 
						|
# Roles must be the same order with the nodes.
 | 
						|
roles=${roles:-"ai i i"}
 | 
						|
# If it practically impossible to set an array as an environment variable
 | 
						|
# from a script, so assume variable is a string then convert it to an array
 | 
						|
export roles_array=($roles)
 | 
						|
 | 
						|
# Define minion numbers
 | 
						|
export NUM_NODES=${NUM_NODES:-3}
 | 
						|
# define the IP range used for service cluster IPs.
 | 
						|
# according to rfc 1918 ref: https://tools.ietf.org/html/rfc1918 choose a private ip range here.
 | 
						|
export SERVICE_CLUSTER_IP_RANGE=${SERVICE_CLUSTER_IP_RANGE:-192.168.3.0/24}  # formerly PORTAL_NET
 | 
						|
# define the IP range used for flannel overlay network, should not conflict with above SERVICE_CLUSTER_IP_RANGE
 | 
						|
 | 
						|
# The Ubuntu scripting supports two ways of networking: Flannel and
 | 
						|
# CNI.  To use CNI: (1) put a CNI configuration file, whose basename
 | 
						|
# is the configured network type plus ".conf", somewhere on the driver
 | 
						|
# machine (the one running `kube-up.sh`) and set CNI_PLUGIN_CONF to a
 | 
						|
# pathname of that file, (2) put one or more executable binaries on
 | 
						|
# the driver machine and set CNI_PLUGIN_EXES to a space-separated list
 | 
						|
# of their pathnames, and (3) set CNI_KUBELET_TRIGGER to identify an
 | 
						|
# appropriate service on which to trigger the start and stop of the
 | 
						|
# kubelet on non-master machines.  For (1) and (2) the pathnames may
 | 
						|
# be relative, in which case they are relative to kubernetes/cluster.
 | 
						|
# If either of CNI_PLUGIN_CONF or CNI_PLUGIN_EXES is undefined or has
 | 
						|
# a zero length value then Flannel will be used instead of CNI.
 | 
						|
 | 
						|
export CNI_PLUGIN_CONF CNI_PLUGIN_EXES CNI_KUBELET_TRIGGER
 | 
						|
CNI_PLUGIN_CONF=${CNI_PLUGIN_CONF:-""}
 | 
						|
CNI_PLUGIN_EXES=${CNI_PLUGIN_EXES:-""}
 | 
						|
CNI_KUBELET_TRIGGER=${CNI_KUBELET_TRIGGER:-networking}
 | 
						|
 | 
						|
# Flannel networking is used if CNI networking is not.  The following
 | 
						|
# variable defines the CIDR block from which cluster addresses are
 | 
						|
# drawn.
 | 
						|
export FLANNEL_NET=${FLANNEL_NET:-172.16.0.0/16}
 | 
						|
 | 
						|
# Optionally add other contents to the Flannel configuration JSON
 | 
						|
# object normally stored in etcd as /coreos.com/network/config.  Use
 | 
						|
# JSON syntax suitable for insertion into a JSON object constructor
 | 
						|
# after other field name:value pairs.  For example:
 | 
						|
# FLANNEL_OTHER_NET_CONFIG=', "SubnetMin": "172.16.10.0", "SubnetMax": "172.16.90.0"'
 | 
						|
 | 
						|
export FLANNEL_OTHER_NET_CONFIG
 | 
						|
FLANNEL_OTHER_NET_CONFIG=''
 | 
						|
 | 
						|
# Admission Controllers to invoke prior to persisting objects in cluster
 | 
						|
# If we included ResourceQuota, we should keep it at the end of the list to prevent incrementing quota usage prematurely.
 | 
						|
export ADMISSION_CONTROL=NamespaceLifecycle,LimitRanger,ServiceAccount,SecurityContextDeny,DefaultStorageClass,ResourceQuota
 | 
						|
 | 
						|
# Path to the config file or directory of files of kubelet
 | 
						|
export KUBELET_CONFIG=${KUBELET_CONFIG:-""}
 | 
						|
 | 
						|
# A port range to reserve for services with NodePort visibility
 | 
						|
SERVICE_NODE_PORT_RANGE=${SERVICE_NODE_PORT_RANGE:-"30000-32767"}
 | 
						|
 | 
						|
# Optional: Enable node logging.
 | 
						|
ENABLE_NODE_LOGGING=false
 | 
						|
LOGGING_DESTINATION=${LOGGING_DESTINATION:-elasticsearch}
 | 
						|
 | 
						|
# Optional: When set to true, Elasticsearch and Kibana will be setup as part of the cluster bring up.
 | 
						|
ENABLE_CLUSTER_LOGGING=false
 | 
						|
ELASTICSEARCH_LOGGING_REPLICAS=${ELASTICSEARCH_LOGGING_REPLICAS:-1}
 | 
						|
 | 
						|
# Optional: When set to true, heapster, Influxdb and Grafana will be setup as part of the cluster bring up.
 | 
						|
ENABLE_CLUSTER_MONITORING="${KUBE_ENABLE_CLUSTER_MONITORING:-true}"
 | 
						|
 | 
						|
# Extra options to set on the Docker command line.  This is useful for setting
 | 
						|
# --insecure-registry for local registries.
 | 
						|
DOCKER_OPTS=${DOCKER_OPTS:-""}
 | 
						|
 | 
						|
# Extra options to set on the kube-proxy command line.  This is useful
 | 
						|
# for selecting the iptables proxy-mode, for example.
 | 
						|
KUBE_PROXY_EXTRA_OPTS=${KUBE_PROXY_EXTRA_OPTS:-""}
 | 
						|
 | 
						|
# Optional: Install cluster DNS.
 | 
						|
ENABLE_CLUSTER_DNS="${KUBE_ENABLE_CLUSTER_DNS:-true}"
 | 
						|
# DNS_SERVER_IP must be a IP in SERVICE_CLUSTER_IP_RANGE
 | 
						|
DNS_SERVER_IP=${DNS_SERVER_IP:-"192.168.3.10"}
 | 
						|
DNS_DOMAIN=${DNS_DOMAIN:-"cluster.local"}
 | 
						|
DNS_REPLICAS=${DNS_REPLICAS:-1}
 | 
						|
 | 
						|
# Optional: Install Kubernetes UI
 | 
						|
ENABLE_CLUSTER_UI="${KUBE_ENABLE_CLUSTER_UI:-true}"
 | 
						|
 | 
						|
# Optional: Enable setting flags for kube-apiserver to turn on behavior in active-dev
 | 
						|
#RUNTIME_CONFIG=""
 | 
						|
 | 
						|
# Optional: Add http or https proxy when download easy-rsa.
 | 
						|
# Add environment variable separated with blank space like "http_proxy=http://10.x.x.x:8080 https_proxy=https://10.x.x.x:8443"
 | 
						|
PROXY_SETTING=${PROXY_SETTING:-""}
 | 
						|
 | 
						|
# Optional: Allows kublet/kube-api to be run in privileged mode
 | 
						|
ALLOW_PRIVILEGED=${ALLOW_PRIVILEGED:-"false"}
 | 
						|
 | 
						|
DEBUG=${DEBUG:-"false"}
 | 
						|
 | 
						|
# Add SSH_OPTS: Add this to config ssh port
 | 
						|
SSH_OPTS="-oPort=22 -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oLogLevel=ERROR"
 |