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
c58864de
Unverified
Commit
c58864de
authored
Apr 17, 2019
by
Kubernetes Prow Robot
Committed by
GitHub
Apr 17, 2019
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #76711 from dims/remove-deprecated-centos-local-support
Remove deprecated centos/local support
parents
8f09fd6b
8762bc39
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
0 additions
and
1422 deletions
+0
-1422
.gitignore
cluster/centos/.gitignore
+0
-14
OWNERS
cluster/centos/OWNERS
+0
-4
build.sh
cluster/centos/build.sh
+0
-137
config-build.sh
cluster/centos/config-build.sh
+0
-52
config-default.sh
cluster/centos/config-default.sh
+0
-143
config-test.sh
cluster/centos/config-test.sh
+0
-19
deployAddons.sh
cluster/centos/deployAddons.sh
+0
-66
make-ca-cert.sh
cluster/centos/make-ca-cert.sh
+0
-89
apiserver.sh
cluster/centos/master/scripts/apiserver.sh
+0
-122
controller-manager.sh
cluster/centos/master/scripts/controller-manager.sh
+0
-61
etcd.sh
cluster/centos/master/scripts/etcd.sh
+0
-86
flannel.sh
cluster/centos/master/scripts/flannel.sh
+0
-72
post-etcd.sh
cluster/centos/master/scripts/post-etcd.sh
+0
-23
scheduler.sh
cluster/centos/master/scripts/scheduler.sh
+0
-64
mk-docker-opts.sh
cluster/centos/node/bin/mk-docker-opts.sh
+0
-113
remove-docker0.sh
cluster/centos/node/bin/remove-docker0.sh
+0
-27
docker.sh
cluster/centos/node/scripts/docker.sh
+0
-48
flannel.sh
cluster/centos/node/scripts/flannel.sh
+0
-74
kubelet.sh
cluster/centos/node/scripts/kubelet.sh
+0
-98
proxy.sh
cluster/centos/node/scripts/proxy.sh
+0
-56
util.sh
cluster/centos/util.sh
+0
-0
kube-up.sh
cluster/kube-up.sh
+0
-21
util.sh
cluster/local/util.sh
+0
-33
No files found.
cluster/centos/.gitignore
deleted
100644 → 0
View file @
8f09fd6b
binaries
ca-cert
etcd-cert
master/bin/etcd
master/bin/etcdctl
master/bin/kube*
node/bin/docker
node/bin/etcd
node/bin/etcdctl
node/bin/flanneld
node/bin/kube*
local-test.sh
cluster/centos/OWNERS
deleted
100644 → 0
View file @
8f09fd6b
# See the OWNERS docs at https://go.k8s.io/owners
reviewers:
- zouyee
cluster/centos/build.sh
deleted
100755 → 0
View file @
8f09fd6b
#!/usr/bin/env 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.
# Download the flannel, etcd, docker, bridge-utils and K8s binaries automatically
# and store into binaries directory.
# Run as sudoers only
# author @kevin-wangzefeng
set
-o
errexit
set
-o
nounset
set
-o
pipefail
readonly
ROOT
=
$(
dirname
"
${
BASH_SOURCE
[0]
}
"
)
source
"
${
ROOT
}
/config-build.sh"
# ensure $RELEASES_DIR is an absolute file path
mkdir
-p
"
${
RELEASES_DIR
}
"
RELEASES_DIR
=
$(
cd
"
${
RELEASES_DIR
}
"
;
pwd
)
# get absolute file path of binaries
BINARY_DIR
=
$(
cd
"
${
ROOT
}
"
;
pwd
)
/binaries
function
clean-up
()
{
rm
-rf
"
${
RELEASES_DIR
}
"
rm
-rf
"
${
BINARY_DIR
}
"
}
function
download-releases
()
{
rm
-rf
"
${
RELEASES_DIR
}
"
mkdir
-p
"
${
RELEASES_DIR
}
"
echo
"Download flannel release v
${
FLANNEL_VERSION
}
..."
curl
-L
"
${
FLANNEL_DOWNLOAD_URL
}
"
-o
"
${
RELEASES_DIR
}
/flannel.tar.gz"
echo
"Download etcd release v
${
ETCD_VERSION
}
..."
curl
-L
"
${
ETCD_DOWNLOAD_URL
}
"
-o
"
${
RELEASES_DIR
}
/etcd.tar.gz"
echo
"Download kubernetes release v
${
K8S_VERSION
}
..."
curl
-L
"
${
K8S_CLIENT_DOWNLOAD_URL
}
"
-o
"
${
RELEASES_DIR
}
/kubernetes-client-linux-amd64.tar.gz"
curl
-L
"
${
K8S_SERVER_DOWNLOAD_URL
}
"
-o
"
${
RELEASES_DIR
}
/kubernetes-server-linux-amd64.tar.gz"
echo
"Download docker release v
${
DOCKER_VERSION
}
..."
curl
-L
"
${
DOCKER_DOWNLOAD_URL
}
"
-o
"
${
RELEASES_DIR
}
/docker.tar.gz"
}
function
unpack-releases
()
{
rm
-rf
"
${
BINARY_DIR
}
"
mkdir
-p
"
${
BINARY_DIR
}
/master/bin"
mkdir
-p
"
${
BINARY_DIR
}
/node/bin"
# flannel
if
[[
-f
"
${
RELEASES_DIR
}
/flannel.tar.gz"
]]
;
then
tar
xzf
"
${
RELEASES_DIR
}
/flannel.tar.gz"
-C
"
${
RELEASES_DIR
}
"
cp
"
${
RELEASES_DIR
}
/flanneld"
"
${
BINARY_DIR
}
/master/bin"
cp
"
${
RELEASES_DIR
}
/flanneld"
"
${
BINARY_DIR
}
/node/bin"
fi
# etcd
if
[[
-f
"
${
RELEASES_DIR
}
/etcd.tar.gz"
]]
;
then
tar
xzf
"
${
RELEASES_DIR
}
/etcd.tar.gz"
-C
"
${
RELEASES_DIR
}
"
ETCD
=
"etcd-v
${
ETCD_VERSION
}
-linux-amd64"
cp
"
${
RELEASES_DIR
}
/
${
ETCD
}
/etcd"
\
"
${
RELEASES_DIR
}
/
${
ETCD
}
/etcdctl"
"
${
BINARY_DIR
}
/master/bin"
cp
"
${
RELEASES_DIR
}
/
${
ETCD
}
/etcd"
\
"
${
RELEASES_DIR
}
/
${
ETCD
}
/etcdctl"
"
${
BINARY_DIR
}
/node/bin"
fi
# k8s
if
[[
-f
"
${
RELEASES_DIR
}
/kubernetes-client-linux-amd64.tar.gz"
]]
;
then
tar
xzf
"
${
RELEASES_DIR
}
/kubernetes-client-linux-amd64.tar.gz"
-C
"
${
RELEASES_DIR
}
"
cp
"
${
RELEASES_DIR
}
/kubernetes/client/bin/kubectl"
"
${
BINARY_DIR
}
"
fi
if
[[
-f
"
${
RELEASES_DIR
}
/kubernetes-server-linux-amd64.tar.gz"
]]
;
then
tar
xzf
"
${
RELEASES_DIR
}
/kubernetes-server-linux-amd64.tar.gz"
-C
"
${
RELEASES_DIR
}
"
cp
"
${
RELEASES_DIR
}
/kubernetes/server/bin/kube-apiserver"
\
"
${
RELEASES_DIR
}
/kubernetes/server/bin/kube-controller-manager"
\
"
${
RELEASES_DIR
}
/kubernetes/server/bin/kube-scheduler"
"
${
BINARY_DIR
}
/master/bin"
cp
"
${
RELEASES_DIR
}
/kubernetes/server/bin/kubelet"
\
"
${
RELEASES_DIR
}
/kubernetes/server/bin/kube-proxy"
"
${
BINARY_DIR
}
/node/bin"
fi
# docker
if
[[
-f
"
${
RELEASES_DIR
}
/docker.tar.gz"
]]
;
then
tar
xzf
"
${
RELEASES_DIR
}
/docker.tar.gz"
-C
"
${
RELEASES_DIR
}
"
cp
"
${
RELEASES_DIR
}
/docker/docker*"
"
${
BINARY_DIR
}
/node/bin"
fi
chmod
-R
+x
"
${
BINARY_DIR
}
"
echo
"Done! All binaries are stored in
${
BINARY_DIR
}
"
}
function
parse-opt
()
{
local
opt
=
${
1
-
}
case
$opt
in
download
)
download-releases
;;
unpack
)
unpack-releases
;;
clean
)
clean-up
;;
all
)
download-releases
unpack-releases
;;
*
)
echo
"Usage: "
echo
" build.sh <command>"
echo
"Commands:"
echo
" clean Clean up downloaded releases and unpacked binaries."
echo
" download Download releases to
\"
${
RELEASES_DIR
}
\"
."
echo
" unpack Unpack releases downloaded in
\"
${
RELEASES_DIR
}
\"
, and copy binaries to
\"
${
BINARY_DIR
}
\"
."
echo
" all Download releases and unpack them."
;;
esac
}
parse-opt
"
${
@
}
"
cluster/centos/config-build.sh
deleted
100755 → 0
View file @
8f09fd6b
#!/usr/bin/env 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 Binaries downloading and unpacking.
# Directory to store release packages that will be downloaded.
RELEASES_DIR
=
${
RELEASES_DIR
:-
/tmp/downloads
}
# Define docker version to use.
DOCKER_VERSION
=
${
DOCKER_VERSION
:-
"1.12.1"
}
# Define flannel version to use.
FLANNEL_VERSION
=
${
FLANNEL_VERSION
:-
"0.6.1"
}
# Define etcd version to use.
ETCD_VERSION
=
${
ETCD_VERSION
:-
"3.0.9"
}
# Define k8s version to use.
K8S_VERSION
=
${
K8S_VERSION
:-
"1.3.7"
}
# shellcheck disable=2034 # Variables sourced in other scripts executed from the same shell
DOCKER_DOWNLOAD_URL
=
\
"https://get.docker.com/builds/Linux/x86_64/docker-
${
DOCKER_VERSION
}
.tgz"
# shellcheck disable=2034 # Variables sourced in other scripts executed from the same shell
FLANNEL_DOWNLOAD_URL
=
\
"https://github.com/coreos/flannel/releases/download/v
${
FLANNEL_VERSION
}
/flannel-v
${
FLANNEL_VERSION
}
-linux-amd64.tar.gz"
# shellcheck disable=2034 # Variables sourced in other scripts executed from the same shell
ETCD_DOWNLOAD_URL
=
\
"https://github.com/coreos/etcd/releases/download/v
${
ETCD_VERSION
}
/etcd-v
${
ETCD_VERSION
}
-linux-amd64.tar.gz"
# shellcheck disable=2034 # Variables sourced in other scripts executed from the same shell
K8S_CLIENT_DOWNLOAD_URL
=
\
"https://dl.k8s.io/v
${
K8S_VERSION
}
/kubernetes-client-linux-amd64.tar.gz"
# shellcheck disable=2034 # Variables sourced in other scripts executed from the same shell
K8S_SERVER_DOWNLOAD_URL
=
\
"https://dl.k8s.io/v
${
K8S_VERSION
}
/kubernetes-server-linux-amd64.tar.gz"
cluster/centos/config-default.sh
deleted
100755 → 0
View file @
8f09fd6b
#!/usr/bin/env 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.
readonly
root
=
$(
dirname
"
${
BASH_SOURCE
[0]
}
"
)
## Contains configuration values for the CentOS cluster
# The user should have sudo privilege
export
MASTER
=
${
MASTER
:-
"centos@172.10.0.11"
}
export
MASTER_IP
=
${
MASTER
#*@
}
# Define all your master nodes,
# And separated with blank space like <user_1@ip_1> <user_2@ip_2> <user_3@ip_3>.
# The user should have sudo privilege
export
MASTERS
=
"
${
MASTERS
:-
$MASTER
}
"
# length-of <arg0>
# Get the length of specific arg0, could be a space-separate string or array.
function
length-of
()
{
local
len
=
0
# shellcheck disable=SC2034 # Unused variables left for readability
for
part
in
$1
;
do
((
++len
))
done
echo
$len
}
# Number of nodes in your cluster.
export
NUM_MASTERS
=
"
${
NUM_MASTERS
:-$(
length-of
"
$MASTERS
"
)}
"
# Get default master advertise address: first master node.
function
default-advertise-address
()
{
# get the first master node
local
masters_array
=(
"
${
MASTERS
}
"
)
local
master
=
${
masters_array
[0]
}
echo
"
${
master
#*@
}
"
}
# Define advertise address of masters, could be a load balancer address.
# If not provided, the default is ip of first master node.
export
MASTER_ADVERTISE_ADDRESS
=
"
${
MASTER_ADVERTISE_ADDRESS
:-$(
default-advertise-address
)}
"
export
MASTER_ADVERTISE_IP
=
"
${
MASTER_ADVERTISE_IP
:-$(
getent hosts
"
${
MASTER_ADVERTISE_ADDRESS
}
"
|
awk
'{print $1; exit}'
)}
"
# Define all your minion nodes,
# And separated with blank space like <user_1@ip_1> <user_2@ip_2> <user_3@ip_3>.
# The user should have sudo privilege
export
NODES
=
"
${
NODES
:-
"centos@172.10.0.12 centos@172.10.0.13"
}
"
# Number of nodes in your cluster.
export
NUM_NODES
=
"
${
NUM_NODES
:-$(
length-of
"
$NODES
"
)}
"
# Should be removed when NUM_NODES is deprecated in validate-cluster.sh
export
NUM_NODES
=
"
${
NUM_NODES
}
"
# By default, the cluster will use the etcd installed on master.
function
concat-etcd-servers
()
{
local
etcd_servers
=
""
for
master
in
${
MASTERS
}
;
do
local
master_ip
=
${
master
#*@
}
local
prefix
=
""
if
[
-n
"
$etcd_servers
"
]
;
then
prefix
=
"
${
etcd_servers
}
,"
fi
etcd_servers
=
"
${
prefix
}
https://
${
master_ip
}
:2379"
done
echo
"
$etcd_servers
"
}
ETCD_SERVERS
=
"
$(
concat-etcd-servers
)
"
export
ETCD_SERVERS
# By default, etcd cluster will use runtime configuration
# https://coreos.com/etcd/docs/latest/v2/runtime-configuration.html
# Get etc initial cluster and store in ETCD_INITIAL_CLUSTER
function
concat-etcd-initial-cluster
()
{
local
etcd_initial_cluster
=
""
local
num_infra
=
0
for
master
in
${
MASTERS
}
;
do
local
master_ip
=
"
${
master
#*@
}
"
if
[
-n
"
$etcd_initial_cluster
"
]
;
then
etcd_initial_cluster+
=
","
fi
etcd_initial_cluster+
=
"infra
${
num_infra
}
=https://
${
master_ip
}
:2380"
((
++num_infra
))
done
echo
"
$etcd_initial_cluster
"
}
ETCD_INITIAL_CLUSTER
=
"
$(
concat-etcd-initial-cluster
)
"
export
ETCD_INITIAL_CLUSTER
CERT_DIR
=
"
${
CERT_DIR
:-${
root
}
/ca-cert
}
"
mkdir
-p
"
${
CERT_DIR
}
"
# CERT_DIR path must be absolute.
CERT_DIR
=
"
$(
cd
"
${
CERT_DIR
}
"
&&
pwd
)
"
export
CERT_DIR
# 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"
}
# Optional: Install cluster DNS.
ENABLE_CLUSTER_DNS
=
"
${
KUBE_ENABLE_CLUSTER_DNS
:-
true
}
"
export
ENABLE_CLUSTER_DNS
# DNS_SERVER_IP must be a IP in SERVICE_CLUSTER_IP_RANGE
DNS_SERVER_IP
=
${
DNS_SERVER_IP
:-
"192.168.3.100"
}
DNS_DOMAIN
=
${
DNS_DOMAIN
:-
"cluster.local"
}
# Optional: Install Kubernetes UI
ENABLE_CLUSTER_UI
=
"
${
KUBE_ENABLE_CLUSTER_UI
:-
true
}
"
export
ENABLE_CLUSTER_UI
# define the IP range used for flannel overlay network, should not conflict with above SERVICE_CLUSTER_IP_RANGE
export
FLANNEL_NET
=
${
FLANNEL_NET
:-
"172.16.0.0/16"
}
# Admission Controllers to invoke prior to persisting objects in cluster.
# MutatingAdmissionWebhook should be the last controller that modifies the
# request object, otherwise users will be confused if the mutating webhooks'
# modification is overwritten.
# If we included ResourceQuota, we should keep it at the end of the list to
# prevent incrementing quota usage prematurely.
export
ADMISSION_CONTROL
=
${
ADMISSION_CONTROL
:-
"NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeClaimResize,DefaultTolerationSeconds,Priority,StorageObjectInUseProtection,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
}
# Extra options to set on the Docker command line.
# This is useful for setting --insecure-registry for local registries.
export
DOCKER_OPTS
=
${
DOCKER_OPTS
:-
""
}
# Timeouts for process checking on master and minion
export
PROCESS_CHECK_TIMEOUT
=
${
PROCESS_CHECK_TIMEOUT
:-
180
}
# seconds.
unset
-f
default-advertise-address concat-etcd-servers length-of concat-etcd-initial-cluster
cluster/centos/config-test.sh
deleted
100644 → 0
View file @
8f09fd6b
#!/usr/bin/env bash
# Copyright 2016 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.
## for CentOS/Fedora/RHEL cluster in test mode
KUBE_ROOT
=
$(
dirname
"
${
BASH_SOURCE
[0]
}
"
)
/../..
source
"
${
KUBE_ROOT
}
/cluster/centos/config-default.sh"
cluster/centos/deployAddons.sh
deleted
100755 → 0
View file @
8f09fd6b
#!/usr/bin/env 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.
# deploy the add-on services after the cluster is available
set
-e
KUBE_ROOT
=
$(
dirname
"
${
BASH_SOURCE
[0]
}
"
)
/../..
source
"
${
KUBE_ROOT
}
/cluster/centos/config-default.sh"
KUBECTL
=
"
${
KUBE_ROOT
}
/cluster/kubectl.sh"
export
KUBECTL_PATH
=
"
${
KUBE_ROOT
}
/cluster/centos/binaries/kubectl"
export
KUBE_CONFIG_FILE
=
${
KUBE_CONFIG_FILE
:-${
KUBE_ROOT
}
/cluster/centos/config-default.sh
}
function
deploy_dns
{
echo
"Deploying DNS on Kubernetes"
cp
"
${
KUBE_ROOT
}
/cluster/addons/dns/kube-dns/kube-dns.yaml.sed"
kube-dns.yaml
sed
-i
-e
"s/
\\\$
DNS_DOMAIN/
${
DNS_DOMAIN
}
/g"
kube-dns.yaml
sed
-i
-e
"s/
\\\$
DNS_SERVER_IP/
${
DNS_SERVER_IP
}
/g"
kube-dns.yaml
KUBEDNS
=
$(
"
${
KUBECTL
}
get services --namespace=kube-system | grep kube-dns | cat"
)
if
[
!
"
$KUBEDNS
"
]
;
then
# use kubectl to create kube-dns addon
${
KUBECTL
}
--namespace
=
kube-system create
-f
kube-dns.yaml
echo
"Kube-dns addon is successfully deployed."
else
echo
"Kube-dns addon is already deployed. Skipping."
fi
echo
}
function
deploy_dashboard
{
echo
"Deploying Kubernetes Dashboard"
${
KUBECTL
}
apply
-f
"
${
KUBE_ROOT
}
/cluster/addons/dashboard/dashboard-secret.yaml"
${
KUBECTL
}
apply
-f
"
${
KUBE_ROOT
}
/cluster/addons/dashboard/dashboard-configmap.yaml"
${
KUBECTL
}
apply
-f
"
${
KUBE_ROOT
}
/cluster/addons/dashboard/dashboard-rbac.yaml"
${
KUBECTL
}
apply
-f
"
${
KUBE_ROOT
}
/cluster/addons/dashboard/dashboard-controller.yaml"
${
KUBECTL
}
apply
-f
"
${
KUBE_ROOT
}
/cluster/addons/dashboard/dashboard-service.yaml"
echo
}
if
[
"
${
ENABLE_CLUSTER_DNS
}
"
==
true
]
;
then
deploy_dns
fi
if
[
"
${
ENABLE_CLUSTER_UI
}
"
==
true
]
;
then
deploy_dashboard
fi
cluster/centos/make-ca-cert.sh
deleted
100755 → 0
View file @
8f09fd6b
#!/usr/bin/env bash
# Copyright 2014 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.
set
-o
errexit
set
-o
nounset
set
-o
pipefail
DEBUG
=
"
${
DEBUG
:-
false
}
"
if
[
"
${
DEBUG
}
"
==
"true"
]
;
then
set
-x
fi
cert_ip
=
$1
extra_sans
=
${
2
:-}
cert_dir
=
${
CERT_DIR
:-
/srv/kubernetes
}
cert_group
=
${
CERT_GROUP
:-
kube
-cert
}
mkdir
-p
"
$cert_dir
"
use_cn
=
false
sans
=
"IP:
${
cert_ip
}
"
if
[[
-n
"
${
extra_sans
}
"
]]
;
then
sans
=
"
${
sans
}
,
${
extra_sans
}
"
fi
tmpdir
=
$(
mktemp
-d
-t
kubernetes_cacert.XXXXXX
)
trap
'rm -rf "${tmpdir}"'
EXIT
cd
"
${
tmpdir
}
"
# TODO: For now, this is a patched tool that makes subject-alt-name work, when
# the fix is upstream move back to the upstream easyrsa. This is cached in GCS
# but is originally taken from:
# https://github.com/brendandburns/easy-rsa/archive/master.tar.gz
#
# To update, do the following:
# curl -o easy-rsa.tar.gz https://github.com/brendandburns/easy-rsa/archive/master.tar.gz
# gsutil cp easy-rsa.tar.gz gs://kubernetes-release/easy-rsa/easy-rsa.tar.gz
# gsutil acl ch -R -g all:R gs://kubernetes-release/easy-rsa/easy-rsa.tar.gz
#
# Due to GCS caching of public objects, it may take time for this to be widely
# distributed.
#
# Use ~/kube/easy-rsa.tar.gz if it exists, so that it can be
# pre-pushed in cases where an outgoing connection is not allowed.
if
[
-f
~/kube/easy-rsa.tar.gz
]
;
then
ln
-s
~/kube/easy-rsa.tar.gz
.
else
curl
-L
-O
https://storage.googleapis.com/kubernetes-release/easy-rsa/easy-rsa.tar.gz
>
/dev/null 2>&1
fi
tar
xzf easy-rsa.tar.gz
>
/dev/null 2>&1
cd
easy-rsa-master/easyrsa3
./easyrsa init-pki
>
/dev/null 2>&1
./easyrsa
--batch
"--req-cn=
${
cert_ip
}
@
$(
date
+%s
)
"
build-ca nopass
>
/dev/null 2>&1
if
[
$use_cn
=
"true"
]
;
then
./easyrsa build-server-full
"
${
cert_ip
}
"
nopass
>
/dev/null 2>&1
cp
-p
"pki/issued/
${
cert_ip
}
.crt"
"
${
cert_dir
}
/server.cert"
>
/dev/null 2>&1
cp
-p
"pki/private/
${
cert_ip
}
.key"
"
${
cert_dir
}
/server.key"
>
/dev/null 2>&1
else
./easyrsa
--subject-alt-name
=
"
${
sans
}
"
build-server-full kubernetes-master nopass
>
/dev/null 2>&1
cp
-p
pki/issued/kubernetes-master.crt
"
${
cert_dir
}
/server.cert"
>
/dev/null 2>&1
cp
-p
pki/private/kubernetes-master.key
"
${
cert_dir
}
/server.key"
>
/dev/null 2>&1
fi
# Make a superuser client cert with subject "O=system:masters, CN=kubecfg"
./easyrsa
--dn-mode
=
org
\
--req-cn
=
kubecfg
--req-org
=
system:masters
\
--req-c
=
--req-st
=
--req-city
=
--req-email
=
--req-ou
=
\
build-client-full kubecfg nopass
>
/dev/null 2>&1
cp
-p
pki/ca.crt
"
${
cert_dir
}
/ca.crt"
cp
-p
pki/issued/kubecfg.crt
"
${
cert_dir
}
/kubecfg.crt"
cp
-p
pki/private/kubecfg.key
"
${
cert_dir
}
/kubecfg.key"
# Make server certs accessible to apiserver.
chgrp
"
${
cert_group
}
"
"
${
cert_dir
}
/server.key"
"
${
cert_dir
}
/server.cert"
"
${
cert_dir
}
/ca.crt"
chmod
660
"
${
cert_dir
}
/server.key"
"
${
cert_dir
}
/server.cert"
"
${
cert_dir
}
/ca.crt"
cluster/centos/master/scripts/apiserver.sh
deleted
100755 → 0
View file @
8f09fd6b
#!/usr/bin/env bash
# Copyright 2014 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.
MASTER_ADDRESS
=
${
1
:-
"8.8.8.18"
}
ETCD_SERVERS
=
${
2
:-
"https://8.8.8.18:2379"
}
SERVICE_CLUSTER_IP_RANGE
=
${
3
:-
"10.10.10.0/24"
}
ADMISSION_CONTROL
=
${
4
:-
""
}
cat
<<
EOF
>/opt/kubernetes/cfg/kube-apiserver
# --logtostderr=true: log to standard error instead of files
KUBE_LOGTOSTDERR="--logtostderr=true"
# --v=0: log level for V logs
KUBE_LOG_LEVEL="--v=4"
# --etcd-servers=[]: List of etcd servers to watch (http://ip:port),
# comma separated. Mutually exclusive with -etcd-config
KUBE_ETCD_SERVERS="--etcd-servers=
${
ETCD_SERVERS
}
"
# --etcd-cafile="": SSL Certificate Authority file used to secure etcd communication.
KUBE_ETCD_CAFILE="--etcd-cafile=/srv/kubernetes/etcd/ca.pem"
# --etcd-certfile="": SSL certification file used to secure etcd communication.
KUBE_ETCD_CERTFILE="--etcd-certfile=/srv/kubernetes/etcd/client.pem"
# --etcd-keyfile="": key file used to secure etcd communication.
KUBE_ETCD_KEYFILE="--etcd-keyfile=/srv/kubernetes/etcd/client-key.pem"
# --insecure-bind-address=127.0.0.1: The IP address on which to serve the --insecure-port.
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
# --insecure-port=8080: The port on which to serve unsecured, unauthenticated access.
KUBE_API_PORT="--insecure-port=8080"
# --kubelet-port=10250: Kubelet port
NODE_PORT="--kubelet-port=10250"
# --advertise-address=<nil>: The IP address on which to advertise
# the apiserver to members of the cluster.
KUBE_ADVERTISE_ADDR="--advertise-address=
${
MASTER_ADDRESS
}
"
# --allow-privileged=false: If true, allow privileged containers.
KUBE_ALLOW_PRIV="--allow-privileged=false"
# --service-cluster-ip-range=<nil>: A CIDR notation IP range from which to assign service cluster IPs.
# This must not overlap with any IP ranges assigned to nodes for pods.
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=
${
SERVICE_CLUSTER_IP_RANGE
}
"
# --admission-control="AlwaysAdmit": Ordered list of plug-ins
# to do admission control of resources into cluster.
# Comma-delimited list of:
# LimitRanger, AlwaysDeny, SecurityContextDeny, NamespaceExists,
# NamespaceLifecycle, NamespaceAutoProvision, AlwaysAdmit,
# ServiceAccount, DefaultStorageClass, DefaultTolerationSeconds, ResourceQuota
# Mark Deprecated. Use --enable-admission-plugins or --disable-admission-plugins instead since v1.10.
# It will be removed in a future version.
KUBE_ADMISSION_CONTROL="--admission-control=
${
ADMISSION_CONTROL
}
"
# --client-ca-file="": If set, any request presenting a client certificate signed
# by one of the authorities in the client-ca-file is authenticated with an identity
# corresponding to the CommonName of the client certificate.
KUBE_API_CLIENT_CA_FILE="--client-ca-file=/srv/kubernetes/ca.crt"
# --tls-cert-file="": File containing x509 Certificate for HTTPS. (CA cert, if any,
# concatenated after server cert). If HTTPS serving is enabled, and --tls-cert-file
# and --tls-private-key-file are not provided, a self-signed certificate and key are
# generated for the public address and saved to /var/run/kubernetes.
KUBE_API_TLS_CERT_FILE="--tls-cert-file=/srv/kubernetes/server.cert"
# --tls-private-key-file="": File containing x509 private key matching --tls-cert-file.
KUBE_API_TLS_PRIVATE_KEY_FILE="--tls-private-key-file=/srv/kubernetes/server.key"
EOF
KUBE_APISERVER_OPTS
=
"
\$
{KUBE_LOGTOSTDERR}
\\
\$
{KUBE_LOG_LEVEL}
\\
\$
{KUBE_ETCD_SERVERS}
\\
\$
{KUBE_ETCD_CAFILE}
\\
\$
{KUBE_ETCD_CERTFILE}
\\
\$
{KUBE_ETCD_KEYFILE}
\\
\$
{KUBE_API_ADDRESS}
\\
\$
{KUBE_API_PORT}
\\
\$
{NODE_PORT}
\\
\$
{KUBE_ADVERTISE_ADDR}
\\
\$
{KUBE_ALLOW_PRIV}
\\
\$
{KUBE_SERVICE_ADDRESSES}
\\
\$
{KUBE_ADMISSION_CONTROL}
\\
\$
{KUBE_API_CLIENT_CA_FILE}
\\
\$
{KUBE_API_TLS_CERT_FILE}
\\
\$
{KUBE_API_TLS_PRIVATE_KEY_FILE}"
cat
<<
EOF
>/usr/lib/systemd/system/kube-apiserver.service
[Unit]
Description=Kubernetes API Server
Documentation=https://github.com/kubernetes/kubernetes
[Service]
EnvironmentFile=-/opt/kubernetes/cfg/kube-apiserver
ExecStart=/opt/kubernetes/bin/kube-apiserver
${
KUBE_APISERVER_OPTS
}
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl
enable
kube-apiserver
systemctl restart kube-apiserver
cluster/centos/master/scripts/controller-manager.sh
deleted
100755 → 0
View file @
8f09fd6b
#!/usr/bin/env bash
# Copyright 2014 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.
MASTER_ADDRESS
=
${
1
:-
"8.8.8.18"
}
cat
<<
EOF
>/opt/kubernetes/cfg/kube-controller-manager
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=4"
KUBE_MASTER="--master=
${
MASTER_ADDRESS
}
:8080"
# --root-ca-file="": If set, this root certificate authority will be included in
# service account's token secret. This must be a valid PEM-encoded CA bundle.
KUBE_CONTROLLER_MANAGER_ROOT_CA_FILE="--root-ca-file=/srv/kubernetes/ca.crt"
# --service-account-private-key-file="": Filename containing a PEM-encoded private
# RSA key used to sign service account tokens.
KUBE_CONTROLLER_MANAGER_SERVICE_ACCOUNT_PRIVATE_KEY_FILE="--service-account-private-key-file=/srv/kubernetes/server.key"
# --leader-elect: Start a leader election client and gain leadership before
# executing the main loop. Enable this when running replicated components for high availability.
KUBE_LEADER_ELECT="--leader-elect"
EOF
KUBE_CONTROLLER_MANAGER_OPTS
=
"
\$
{KUBE_LOGTOSTDERR}
\\
\$
{KUBE_LOG_LEVEL}
\\
\$
{KUBE_MASTER}
\\
\$
{KUBE_CONTROLLER_MANAGER_ROOT_CA_FILE}
\\
\$
{KUBE_CONTROLLER_MANAGER_SERVICE_ACCOUNT_PRIVATE_KEY_FILE}
\\
\$
{KUBE_LEADER_ELECT}"
cat
<<
EOF
>/usr/lib/systemd/system/kube-controller-manager.service
[Unit]
Description=Kubernetes Controller Manager
Documentation=https://github.com/kubernetes/kubernetes
[Service]
EnvironmentFile=-/opt/kubernetes/cfg/kube-controller-manager
ExecStart=/opt/kubernetes/bin/kube-controller-manager
${
KUBE_CONTROLLER_MANAGER_OPTS
}
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl
enable
kube-controller-manager
systemctl restart kube-controller-manager
cluster/centos/master/scripts/etcd.sh
deleted
100755 → 0
View file @
8f09fd6b
#!/bin/bash
# Copyright 2014 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.
## Create etcd.conf, etcd.service, and start etcd service.
etcd_data_dir
=
/var/lib/etcd
mkdir
-p
${
etcd_data_dir
}
ETCD_NAME
=
${
1
:-
"default"
}
ETCD_LISTEN_IP
=
${
2
:-
"0.0.0.0"
}
ETCD_INITIAL_CLUSTER
=
${
3
:-}
cat
<<
EOF
>/opt/kubernetes/cfg/etcd.conf
# [member]
ETCD_NAME="
${
ETCD_NAME
}
"
ETCD_DATA_DIR="
${
etcd_data_dir
}
/default.etcd"
#ETCD_SNAPSHOT_COUNTER="10000"
#ETCD_HEARTBEAT_INTERVAL="100"
#ETCD_ELECTION_TIMEOUT="1000"
ETCD_LISTEN_PEER_URLS="https://
${
ETCD_LISTEN_IP
}
:2380"
ETCD_LISTEN_CLIENT_URLS="https://
${
ETCD_LISTEN_IP
}
:2379,https://127.0.0.1:2379"
#ETCD_MAX_SNAPSHOTS="5"
#ETCD_MAX_WALS="5"
#ETCD_CORS=""
#
#[cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://
${
ETCD_LISTEN_IP
}
:2380"
# if you use different ETCD_NAME (e.g. test),
# set ETCD_INITIAL_CLUSTER value for this name, i.e. "test=http://..."
ETCD_INITIAL_CLUSTER="
${
ETCD_INITIAL_CLUSTER
}
"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="k8s-etcd-cluster"
ETCD_ADVERTISE_CLIENT_URLS="https://
${
ETCD_LISTEN_IP
}
:2379"
#ETCD_DISCOVERY=""
#ETCD_DISCOVERY_SRV=""
#ETCD_DISCOVERY_FALLBACK="proxy"
#ETCD_DISCOVERY_PROXY=""
#
#[proxy]
#ETCD_PROXY="off"
#
#[security]
CLIENT_CERT_AUTH="true"
ETCD_CA_FILE="/srv/kubernetes/etcd/ca.pem"
ETCD_CERT_FILE="/srv/kubernetes/etcd/server-
${
ETCD_NAME
}
.pem"
ETCD_KEY_FILE="/srv/kubernetes/etcd/server-
${
ETCD_NAME
}
-key.pem"
PEER_CLIENT_CERT_AUTH="true"
ETCD_PEER_CA_FILE="/srv/kubernetes/etcd/ca.pem"
ETCD_PEER_CERT_FILE="/srv/kubernetes/etcd/peer-
${
ETCD_NAME
}
.pem"
ETCD_PEER_KEY_FILE="/srv/kubernetes/etcd/peer-
${
ETCD_NAME
}
-key.pem"
EOF
cat
<<
EOF
>//usr/lib/systemd/system/etcd.service
[Unit]
Description=Etcd Server
After=network.target
[Service]
Type=simple
WorkingDirectory=
${
etcd_data_dir
}
EnvironmentFile=-/opt/kubernetes/cfg/etcd.conf
# set GOMAXPROCS to number of processors
ExecStart=/bin/bash -c "GOMAXPROCS=\
$(
nproc
)
/opt/kubernetes/bin/etcd"
Type=notify
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl
enable
etcd
systemctl restart etcd
cluster/centos/master/scripts/flannel.sh
deleted
100644 → 0
View file @
8f09fd6b
#!/usr/bin/env bash
# Copyright 2014 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.
ETCD_SERVERS
=
${
1
:-
"http://8.8.8.18:4001"
}
FLANNEL_NET
=
${
2
:-
"172.16.0.0/16"
}
CA_FILE
=
"/srv/kubernetes/etcd/ca.pem"
CERT_FILE
=
"/srv/kubernetes/etcd/client.pem"
KEY_FILE
=
"/srv/kubernetes/etcd/client-key.pem"
cat
<<
EOF
>/opt/kubernetes/cfg/flannel
FLANNEL_ETCD="-etcd-endpoints=
${
ETCD_SERVERS
}
"
FLANNEL_ETCD_KEY="-etcd-prefix=/coreos.com/network"
FLANNEL_ETCD_CAFILE="--etcd-cafile=
${
CA_FILE
}
"
FLANNEL_ETCD_CERTFILE="--etcd-certfile=
${
CERT_FILE
}
"
FLANNEL_ETCD_KEYFILE="--etcd-keyfile=
${
KEY_FILE
}
"
EOF
cat
<<
EOF
>/usr/lib/systemd/system/flannel.service
[Unit]
Description=Flanneld overlay address etcd agent
After=network.target
[Service]
EnvironmentFile=-/opt/kubernetes/cfg/flannel
ExecStart=/opt/kubernetes/bin/flanneld --ip-masq \
${
FLANNEL_ETCD
}
\
${
FLANNEL_ETCD_KEY
}
\
${
FLANNEL_ETCD_CAFILE
}
\
${
FLANNEL_ETCD_CERTFILE
}
\
${
FLANNEL_ETCD_KEYFILE
}
Type=notify
[Install]
WantedBy=multi-user.target
EOF
# Store FLANNEL_NET to etcd.
attempt
=
0
while
true
;
do
if
/opt/kubernetes/bin/etcdctl
--ca-file
${
CA_FILE
}
--cert-file
${
CERT_FILE
}
--key-file
${
KEY_FILE
}
\
--no-sync
-C
"
${
ETCD_SERVERS
}
"
\
get /coreos.com/network/config
>
/dev/null 2>&1
;
then
break
else
if
((
attempt
>
600
))
;
then
echo
"timeout for waiting network config"
>
~/kube/err.log
exit
2
fi
/opt/kubernetes/bin/etcdctl
--ca-file
${
CA_FILE
}
--cert-file
${
CERT_FILE
}
--key-file
${
KEY_FILE
}
\
--no-sync
-C
"
${
ETCD_SERVERS
}
"
\
mk /coreos.com/network/config
"{
\"
Network
\"
:
\"
${
FLANNEL_NET
}
\"
}"
>
/dev/null 2>&1
attempt
=
$((
attempt+1
))
sleep
3
fi
done
wait
systemctl
enable
flannel
systemctl daemon-reload
systemctl restart flannel
cluster/centos/master/scripts/post-etcd.sh
deleted
100644 → 0
View file @
8f09fd6b
#!/usr/bin/env bash
# Copyright 2014 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.
## Set initial-cluster-state to existing, and restart etcd service.
sed
-i
's/ETCD_INITIAL_CLUSTER_STATE="new"/ETCD_INITIAL_CLUSTER_STATE="existing"/'
/opt/kubernetes/cfg/etcd.conf
systemctl daemon-reload
systemctl
enable
etcd
systemctl restart etcd
cluster/centos/master/scripts/scheduler.sh
deleted
100755 → 0
View file @
8f09fd6b
#!/usr/bin/env bash
# Copyright 2014 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.
MASTER_ADDRESS
=
${
1
:-
"8.8.8.18"
}
cat
<<
EOF
>/opt/kubernetes/cfg/kube-scheduler
###
# kubernetes scheduler config
# --logtostderr=true: log to standard error instead of files
KUBE_LOGTOSTDERR="--logtostderr=true"
# --v=0: log level for V logs
KUBE_LOG_LEVEL="--v=4"
# --master: The address of the Kubernetes API server (overrides any value in kubeconfig).
KUBE_MASTER="--master=
${
MASTER_ADDRESS
}
:8080"
# --leader-elect: Start a leader election client and gain leadership before
# executing the main loop. Enable this when running replicated components for high availability.
KUBE_LEADER_ELECT="--leader-elect"
# Add your own!
KUBE_SCHEDULER_ARGS=""
EOF
KUBE_SCHEDULER_OPTS
=
"
\$
{KUBE_LOGTOSTDERR}
\\
\$
{KUBE_LOG_LEVEL}
\\
\$
{KUBE_MASTER}
\\
\$
{KUBE_LEADER_ELECT}
\\
\$
KUBE_SCHEDULER_ARGS"
cat
<<
EOF
>/usr/lib/systemd/system/kube-scheduler.service
[Unit]
Description=Kubernetes Scheduler
Documentation=https://github.com/kubernetes/kubernetes
[Service]
EnvironmentFile=-/opt/kubernetes/cfg/kube-scheduler
ExecStart=/opt/kubernetes/bin/kube-scheduler
${
KUBE_SCHEDULER_OPTS
}
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl
enable
kube-scheduler
systemctl restart kube-scheduler
cluster/centos/node/bin/mk-docker-opts.sh
deleted
100755 → 0
View file @
8f09fd6b
#!/usr/bin/env bash
# Copyright 2014 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.
# Generate Docker daemon options based on flannel env file.
# exit on any error
set
-e
usage
()
{
echo
"
$0
[-f FLANNEL-ENV-FILE] [-d DOCKER-ENV-FILE] [-i] [-c] [-m] [-k COMBINED-KEY]
Generate Docker daemon options based on flannel env file
OPTIONS:
-f Path to flannel env file. Defaults to /run/flannel/subnet.env
-d Path to Docker env file to write to. Defaults to /run/docker_opts.env
-i Output each Docker option as individual var. e.g. DOCKER_OPT_MTU=1500
-c Output combined Docker options into DOCKER_OPTS var
-k Set the combined options key to this value (default DOCKER_OPTS=)
-m Do not output --ip-masq (useful for older Docker version)
"
>
/dev/stderr
exit
1
}
flannel_env
=
"/run/flannel/subnet.env"
docker_env
=
"/run/docker_opts.env"
combined_opts_key
=
"DOCKER_OPTS"
indiv_opts
=
false
combined_opts
=
false
ipmasq
=
true
val
=
""
while
getopts
"f:d:icmk:"
opt
;
do
case
$opt
in
f
)
flannel_env
=
$OPTARG
;;
d
)
docker_env
=
$OPTARG
;;
i
)
indiv_opts
=
true
;;
c
)
combined_opts
=
true
;;
m
)
ipmasq
=
false
;;
k
)
combined_opts_key
=
$OPTARG
;;
\?
)
usage
;;
esac
done
if
[[
$indiv_opts
=
false
]]
&&
[[
$combined_opts
=
false
]]
;
then
indiv_opts
=
true
combined_opts
=
true
fi
if
[[
-f
"
${
flannel_env
}
"
]]
;
then
source
"
${
flannel_env
}
"
fi
if
[[
-n
"
$FLANNEL_SUBNET
"
]]
;
then
# shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below
DOCKER_OPT_BIP
=
"--bip=
$FLANNEL_SUBNET
"
fi
if
[[
-n
"
$FLANNEL_MTU
"
]]
;
then
# shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below
DOCKER_OPT_MTU
=
"--mtu=
$FLANNEL_MTU
"
fi
if
[[
"
$FLANNEL_IPMASQ
"
=
true
]]
&&
[[
$ipmasq
=
true
]]
;
then
# shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below
DOCKER_OPT_IPMASQ
=
"--ip-masq=false"
fi
eval
docker_opts
=
"
\$
${
combined_opts_key
}
"
docker_opts+
=
" "
echo
-n
""
>
"
${
docker_env
}
"
# OPT_LOOP
for
opt
in
$(
compgen
-v
DOCKER_OPT_
)
;
do
eval
val
=
\$
"
${
opt
}
"
if
[[
"
$indiv_opts
"
=
true
]]
;
then
echo
"
$opt
=
\"
$val
\"
"
>>
"
${
docker_env
}
"
fi
docker_opts+
=
"
$val
"
done
if
[[
"
$combined_opts
"
=
true
]]
;
then
echo
"
${
combined_opts_key
}
=
\"
${
docker_opts
}
\"
"
>>
"
${
docker_env
}
"
fi
cluster/centos/node/bin/remove-docker0.sh
deleted
100755 → 0
View file @
8f09fd6b
#!/usr/bin/env bash
# Copyright 2014 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.
# Delete default docker bridge, so that docker can start with flannel network.
# exit on any error
set
-e
rc
=
0
ip
link
show docker0
>
/dev/null 2>&1
||
rc
=
"
$?
"
if
[[
"
$rc
"
-eq
"0"
]]
;
then
ip
link set
dev docker0 down
ip
link
delete docker0
fi
cluster/centos/node/scripts/docker.sh
deleted
100755 → 0
View file @
8f09fd6b
#!/usr/bin/env bash
# Copyright 2014 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.
DOCKER_OPTS
=
${
1
:-
""
}
DOCKER_CONFIG
=
/opt/kubernetes/cfg/docker
cat
<<
EOF
>
$DOCKER_CONFIG
DOCKER_OPTS="-H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay --selinux-enabled=false
${
DOCKER_OPTS
}
"
EOF
cat
<<
EOF
>/usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target flannel.service
Requires=flannel.service
[Service]
Type=notify
EnvironmentFile=-/run/flannel/docker
EnvironmentFile=-/opt/kubernetes/cfg/docker
WorkingDirectory=/opt/kubernetes/bin
ExecStart=/opt/kubernetes/bin/dockerd \
$DOCKER_OPT_BIP
\
$DOCKER_OPT_MTU
\
$DOCKER_OPTS
LimitNOFILE=1048576
LimitNPROC=1048576
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl
enable
docker
systemctl restart docker
cluster/centos/node/scripts/flannel.sh
deleted
100755 → 0
View file @
8f09fd6b
#!/usr/bin/env bash
# Copyright 2014 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.
ETCD_SERVERS
=
${
1
:-
"https://8.8.8.18:2379"
}
FLANNEL_NET
=
${
2
:-
"172.16.0.0/16"
}
CA_FILE
=
"/srv/kubernetes/etcd/ca.pem"
CERT_FILE
=
"/srv/kubernetes/etcd/client.pem"
KEY_FILE
=
"/srv/kubernetes/etcd/client-key.pem"
cat
<<
EOF
>/opt/kubernetes/cfg/flannel
FLANNEL_ETCD="-etcd-endpoints=
${
ETCD_SERVERS
}
"
FLANNEL_ETCD_KEY="-etcd-prefix=/coreos.com/network"
FLANNEL_ETCD_CAFILE="--etcd-cafile=
${
CA_FILE
}
"
FLANNEL_ETCD_CERTFILE="--etcd-certfile=
${
CERT_FILE
}
"
FLANNEL_ETCD_KEYFILE="--etcd-keyfile=
${
KEY_FILE
}
"
EOF
cat
<<
EOF
>/usr/lib/systemd/system/flannel.service
[Unit]
Description=Flanneld overlay address etcd agent
After=network.target
Before=docker.service
[Service]
EnvironmentFile=-/opt/kubernetes/cfg/flannel
ExecStartPre=/opt/kubernetes/bin/remove-docker0.sh
ExecStart=/opt/kubernetes/bin/flanneld --ip-masq \
${
FLANNEL_ETCD
}
\
${
FLANNEL_ETCD_KEY
}
\
${
FLANNEL_ETCD_CAFILE
}
\
${
FLANNEL_ETCD_CERTFILE
}
\
${
FLANNEL_ETCD_KEYFILE
}
ExecStartPost=/opt/kubernetes/bin/mk-docker-opts.sh -d /run/flannel/docker
Type=notify
[Install]
WantedBy=multi-user.target
RequiredBy=docker.service
EOF
# Store FLANNEL_NET to etcd.
attempt
=
0
while
true
;
do
if
/opt/kubernetes/bin/etcdctl
--ca-file
${
CA_FILE
}
--cert-file
${
CERT_FILE
}
--key-file
${
KEY_FILE
}
\
--no-sync
-C
"
${
ETCD_SERVERS
}
"
\
get /coreos.com/network/config
>
/dev/null 2>&1
;
then
break
else
if
((
attempt
>
600
))
;
then
echo
"timeout for waiting network config"
>
~/kube/err.log
exit
2
fi
/opt/kubernetes/bin/etcdctl
--ca-file
${
CA_FILE
}
--cert-file
${
CERT_FILE
}
--key-file
${
KEY_FILE
}
\
--no-sync
-C
"
${
ETCD_SERVERS
}
"
\
mk /coreos.com/network/config
"{
\"
Network
\"
:
\"
${
FLANNEL_NET
}
\"
}"
>
/dev/null 2>&1
attempt
=
$((
attempt+1
))
sleep
3
fi
done
wait
systemctl daemon-reload
cluster/centos/node/scripts/kubelet.sh
deleted
100755 → 0
View file @
8f09fd6b
#!/usr/bin/env bash
# Copyright 2014 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.
MASTER_ADDRESS
=
${
1
:-
"8.8.8.18"
}
NODE_ADDRESS
=
${
2
:-
"8.8.8.20"
}
DNS_SERVER_IP
=
${
3
:-
"192.168.3.100"
}
DNS_DOMAIN
=
${
4
:-
"cluster.local"
}
KUBECONFIG_DIR
=
${
KUBECONFIG_DIR
:-
/opt/kubernetes/cfg
}
# Generate a kubeconfig file
cat
<<
EOF
> "
${
KUBECONFIG_DIR
}
/kubelet.kubeconfig"
apiVersion: v1
kind: Config
clusters:
- cluster:
server: http://
${
MASTER_ADDRESS
}
:8080/
name: local
contexts:
- context:
cluster: local
name: local
current-context: local
EOF
cat
<<
EOF
>/opt/kubernetes/cfg/kubelet
# --logtostderr=true: log to standard error instead of files
KUBE_LOGTOSTDERR="--logtostderr=true"
# --v=0: log level for V logs
KUBE_LOG_LEVEL="--v=4"
# --address=0.0.0.0: The IP address for the Kubelet to serve on (set to 0.0.0.0 for all interfaces)
NODE_ADDRESS="--address=
${
NODE_ADDRESS
}
"
# --port=10250: The port for the Kubelet to serve on. Note that "kubectl logs" will not work if you set this flag.
NODE_PORT="--port=10250"
# --hostname-override="": If non-empty, will use this string as identification instead of the actual hostname.
NODE_HOSTNAME="--hostname-override=
${
NODE_ADDRESS
}
"
# Path to a kubeconfig file, specifying how to connect to the API server.
KUBELET_KUBECONFIG="--kubeconfig=
${
KUBECONFIG_DIR
}
/kubelet.kubeconfig"
# --allow-privileged=false: If true, allow containers to request privileged mode. [default=false]
KUBE_ALLOW_PRIV="--allow-privileged=false"
# DNS info
KUBELET__DNS_IP="--cluster-dns=
${
DNS_SERVER_IP
}
"
KUBELET_DNS_DOMAIN="--cluster-domain=
${
DNS_DOMAIN
}
"
# Add your own!
KUBELET_ARGS=""
EOF
KUBELET_OPTS
=
"
\$
{KUBE_LOGTOSTDERR}
\\
\$
{KUBE_LOG_LEVEL}
\\
\$
{NODE_ADDRESS}
\\
\$
{NODE_PORT}
\\
\$
{NODE_HOSTNAME}
\\
\$
{KUBELET_KUBECONFIG}
\\
\$
{KUBE_ALLOW_PRIV}
\\
\$
{KUBELET__DNS_IP}
\\
\$
{KUBELET_DNS_DOMAIN}
\\
\$
KUBELET_ARGS"
cat
<<
EOF
>/usr/lib/systemd/system/kubelet.service
[Unit]
Description=Kubernetes Kubelet
After=docker.service
Requires=docker.service
[Service]
EnvironmentFile=-/opt/kubernetes/cfg/kubelet
ExecStart=/opt/kubernetes/bin/kubelet
${
KUBELET_OPTS
}
Restart=on-failure
KillMode=process
RestartSec=15s
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl
enable
kubelet
systemctl restart kubelet
cluster/centos/node/scripts/proxy.sh
deleted
100755 → 0
View file @
8f09fd6b
#!/usr/bin/env bash
# Copyright 2014 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.
MASTER_ADDRESS
=
${
1
:-
"8.8.8.18"
}
NODE_ADDRESS
=
${
2
:-
"8.8.8.20"
}
cat
<<
EOF
>/opt/kubernetes/cfg/kube-proxy
# --logtostderr=true: log to standard error instead of files
KUBE_LOGTOSTDERR="--logtostderr=true"
# --v=0: log level for V logs
KUBE_LOG_LEVEL="--v=4"
# --hostname-override="": If non-empty, will use this string as identification instead of the actual hostname.
NODE_HOSTNAME="--hostname-override=
${
NODE_ADDRESS
}
"
# --master="": The address of the Kubernetes API server (overrides any value in kubeconfig)
KUBE_MASTER="--master=http://
${
MASTER_ADDRESS
}
:8080"
EOF
KUBE_PROXY_OPTS
=
"
\$
{KUBE_LOGTOSTDERR}
\\
\$
{KUBE_LOG_LEVEL}
\\
\$
{NODE_HOSTNAME}
\\
\$
{KUBE_MASTER}"
cat
<<
EOF
>/usr/lib/systemd/system/kube-proxy.service
[Unit]
Description=Kubernetes Proxy
After=network.target
[Service]
EnvironmentFile=-/opt/kubernetes/cfg/kube-proxy
ExecStart=/opt/kubernetes/bin/kube-proxy
${
KUBE_PROXY_OPTS
}
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl
enable
kube-proxy
systemctl restart kube-proxy
cluster/centos/util.sh
deleted
100755 → 0
View file @
8f09fd6b
This diff is collapsed.
Click to expand it.
cluster/kube-up.sh
View file @
c58864de
...
...
@@ -32,27 +32,6 @@ fi
source
"
${
KUBE_ROOT
}
/cluster/kube-util.sh"
DEPRECATED_PROVIDERS
=(
"centos"
"local"
)
for
provider
in
"
${
DEPRECATED_PROVIDERS
[@]
}
"
;
do
if
[[
"
${
KUBERNETES_PROVIDER
}
"
==
"
${
provider
}
"
]]
;
then
cat
<<
EOF
1>&2
!!! DEPRECATION NOTICE !!!
The '
${
provider
}
' kube-up provider is deprecated and will be removed in a future
release of kubernetes. Deprecated providers will be removed within 2 releases.
See https://github.com/kubernetes/kubernetes/issues/49213 for more info.
EOF
break
fi
done
if
[
-z
"
${
ZONE
-
}
"
]
;
then
echo
"... Starting cluster using provider:
${
KUBERNETES_PROVIDER
}
"
>
&2
else
...
...
cluster/local/util.sh
deleted
100755 → 0
View file @
8f09fd6b
#!/usr/bin/env bash
# Copyright 2016 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.
# Perform preparations required to run e2e tests
function
prepare-e2e
()
{
echo
"Local doesn't need special preparations for e2e tests"
1>&2
}
# Detect the IP for the master
#
# Vars set:
# KUBE_MASTER
# KUBE_MASTER_IP
# Vars exported:
# KUBE_MASTER_URL
function
detect-master
{
KUBE_MASTER
=
localhost
KUBE_MASTER_IP
=
127.0.0.1
export
KUBE_MASTER_URL
=
"http://
${
KUBE_MASTER_IP
}
:8080"
echo
"Using master:
$KUBE_MASTER
(external IP:
$KUBE_MASTER_IP
)"
}
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