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
a95f1b84
Commit
a95f1b84
authored
Jan 27, 2016
by
k8s-merge-robot
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #17243 from yifan-gu/gce_coreos
Auto commit by PR queue bot
parents
4f845ad6
723402c4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
41 changed files
with
1470 additions
and
108 deletions
+1470
-108
common.sh
build/common.sh
+2
-1
common.sh
cluster/common.sh
+1
-1
configure-kubelet.sh
cluster/gce/coreos/configure-kubelet.sh
+33
-0
configure-node.sh
cluster/gce/coreos/configure-node.sh
+0
-0
helper.sh
cluster/gce/coreos/helper.sh
+39
-7
default-svc.yaml
...ifests/addons/cluster-loadbalancing/glbc/default-svc.yaml
+22
-0
glbc-controller.yaml
...ts/addons/cluster-loadbalancing/glbc/glbc-controller.yaml
+69
-0
heapster-controller.yaml
...addons/cluster-monitoring/google/heapster-controller.yaml
+50
-0
heapster-service.yaml
...ts/addons/cluster-monitoring/google/heapster-service.yaml
+14
-0
heapster-controller-combined.yaml
...nitoring/googleinfluxdb/heapster-controller-combined.yaml
+50
-0
grafana-service.yaml
...s/addons/cluster-monitoring/influxdb/grafana-service.yaml
+18
-0
heapster-controller.yaml
...dons/cluster-monitoring/influxdb/heapster-controller.yaml
+34
-0
heapster-service.yaml
.../addons/cluster-monitoring/influxdb/heapster-service.yaml
+14
-0
influxdb-grafana-controller.yaml
...ster-monitoring/influxdb/influxdb-grafana-controller.yaml
+70
-0
influxdb-service.yaml
.../addons/cluster-monitoring/influxdb/influxdb-service.yaml
+19
-0
heapster-controller.yaml
...ns/cluster-monitoring/standalone/heapster-controller.yaml
+31
-0
heapster-service.yaml
...ddons/cluster-monitoring/standalone/heapster-service.yaml
+14
-0
skydns-rc.yaml
cluster/gce/coreos/kube-manifests/addons/dns/skydns-rc.yaml
+116
-0
skydns-svc.yaml
cluster/gce/coreos/kube-manifests/addons/dns/skydns-svc.yaml
+20
-0
es-controller.yaml
...manifests/addons/fluentd-elasticsearch/es-controller.yaml
+40
-0
es-service.yaml
...be-manifests/addons/fluentd-elasticsearch/es-service.yaml
+16
-0
kibana-controller.yaml
...fests/addons/fluentd-elasticsearch/kibana-controller.yaml
+34
-0
kibana-service.yaml
...anifests/addons/fluentd-elasticsearch/kibana-service.yaml
+16
-0
kube-ui-rc.yaml
.../gce/coreos/kube-manifests/addons/kube-ui/kube-ui-rc.yaml
+36
-0
kube-ui-svc.yaml
...gce/coreos/kube-manifests/addons/kube-ui/kube-ui-svc.yaml
+15
-0
namespace.yaml
cluster/gce/coreos/kube-manifests/addons/namespace.yaml
+4
-0
registry-pv.yaml
...ce/coreos/kube-manifests/addons/registry/registry-pv.yaml
+14
-0
registry-pvc.yaml
...e/coreos/kube-manifests/addons/registry/registry-pvc.yaml
+13
-0
registry-rc.yaml
...ce/coreos/kube-manifests/addons/registry/registry-rc.yaml
+44
-0
registry-svc.yaml
...e/coreos/kube-manifests/addons/registry/registry-svc.yaml
+16
-0
etcd-events.yaml
cluster/gce/coreos/kube-manifests/etcd-events.yaml
+58
-0
etcd.yaml
cluster/gce/coreos/kube-manifests/etcd.yaml
+57
-0
kube-apiserver.yaml
cluster/gce/coreos/kube-manifests/kube-apiserver.yaml
+85
-0
kube-controller-manager.yaml
...er/gce/coreos/kube-manifests/kube-controller-manager.yaml
+65
-0
kube-scheduler.yaml
cluster/gce/coreos/kube-manifests/kube-scheduler.yaml
+42
-0
kube-system.json
cluster/gce/coreos/kube-manifests/kube-system.json
+7
-0
kubelet-config.yaml
cluster/gce/coreos/kube-manifests/kubelet-config.yaml
+17
-0
kubeproxy-config.yaml
cluster/gce/coreos/kube-manifests/kubeproxy-config.yaml
+16
-0
master.yaml
cluster/gce/coreos/master.yaml
+188
-0
node.yaml
cluster/gce/coreos/node.yaml
+68
-98
util.sh
cluster/gce/util.sh
+3
-1
No files found.
build/common.sh
View file @
a95f1b84
...
@@ -899,7 +899,8 @@ function kube::release::package_kube_manifests_tarball() {
...
@@ -899,7 +899,8 @@ function kube::release::package_kube_manifests_tarball() {
# Source 2: manifests from cluster/gce/kube-manifests.
# Source 2: manifests from cluster/gce/kube-manifests.
# TODO(andyzheng0831): Enable the following line after finishing issue #16702.
# TODO(andyzheng0831): Enable the following line after finishing issue #16702.
# cp "${KUBE_ROOT}/cluster/gce/kube-manifests/"* "${release_stage}/"
# cp "${KUBE_ROOT}/cluster/gce/kube-manifests/*" "${release_stage}/"
cp
-r
"
${
KUBE_ROOT
}
/cluster/gce/coreos/kube-manifests"
/
*
"
${
release_stage
}
/"
kube::release::clean_cruft
kube::release::clean_cruft
...
...
cluster/common.sh
View file @
a95f1b84
...
@@ -337,7 +337,7 @@ function find-release-tars() {
...
@@ -337,7 +337,7 @@ function find-release-tars() {
# This tarball is only used by Ubuntu Trusty.
# This tarball is only used by Ubuntu Trusty.
KUBE_MANIFESTS_TAR
=
KUBE_MANIFESTS_TAR
=
if
[[
"
${
KUBE_OS_DISTRIBUTION
:-}
"
==
"trusty"
]]
;
then
if
[[
"
${
KUBE_OS_DISTRIBUTION
:-}
"
==
"trusty"
||
"
${
KUBE_OS_DISTRIBUTION
:-}
"
==
"coreos"
]]
;
then
KUBE_MANIFESTS_TAR
=
"
${
KUBE_ROOT
}
/server/kubernetes-manifests.tar.gz"
KUBE_MANIFESTS_TAR
=
"
${
KUBE_ROOT
}
/server/kubernetes-manifests.tar.gz"
if
[[
!
-f
"
${
KUBE_MANIFESTS_TAR
}
"
]]
;
then
if
[[
!
-f
"
${
KUBE_MANIFESTS_TAR
}
"
]]
;
then
KUBE_MANIFESTS_TAR
=
"
${
KUBE_ROOT
}
/_output/release-tars/kubernetes-manifests.tar.gz"
KUBE_MANIFESTS_TAR
=
"
${
KUBE_ROOT
}
/_output/release-tars/kubernetes-manifests.tar.gz"
...
...
cluster/gce/coreos/configure-kubelet.sh
0 → 100755
View file @
a95f1b84
#!/bin/bash
# Copyright 2015 The Kubernetes Authors All rights reserved.
#
# 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
MANIFESTS_DIR
=
/opt/kube-manifests/kubernetes
echo
"Configuring hostname"
hostnamectl set-hostname
$(
hostname
|
cut
-f1
-d
.
)
echo
"Configuring kubelet"
mkdir
-p
/var/lib/kubelet
mkdir
-p
/etc/kubernetes/manifests
src
=
${
MANIFESTS_DIR
}
/kubelet-config.yaml
dst
=
/var/lib/kubelet/kubeconfig
cp
${
src
}
${
dst
}
sed
-i
's/\"/\\\"/g'
${
dst
}
# eval will remove the double quotes if they are not escaped
eval
"echo
\"
$(
<
${
dst
})
\"
"
>
${
dst
}
cluster/gce/coreos/configure-node.sh
0 → 100644
View file @
a95f1b84
This diff is collapsed.
Click to expand it.
cluster/gce/coreos/helper.sh
View file @
a95f1b84
...
@@ -16,17 +16,49 @@
...
@@ -16,17 +16,49 @@
# A library of helper functions and constant for coreos os distro
# A library of helper functions and constant for coreos os distro
# By sourcing debian's helper.sh, we use the same create-master-instance
# functions as debian. But we overwrite the create-node-instance-template
# function to use coreos.
source
"
${
KUBE_ROOT
}
/cluster/gce/debian/helper.sh"
# TODO(dawnchen): Check $CONTAINER_RUNTIME to decide which
# TODO(dawnchen): Check $CONTAINER_RUNTIME to decide which
# cloud_config yaml file should be passed
# cloud_config yaml file should be passed
# $1: template name (required)
# $1: template name (required)
function
create-node-instance-template
{
function
create-node-instance-template
()
{
local
template_name
=
"
$1
"
local
template_name
=
"
$1
"
create-node-template
"
$template_name
"
"
${
scope_flags
}
"
\
create-node-template
"
$template_name
"
"
${
scope_flags
}
"
\
"kube-env=
${
KUBE_TEMP
}
/node-kube-env.yaml"
\
"kube-env=
${
KUBE_TEMP
}
/node-kube-env.yaml"
\
"user-data=
${
KUBE_ROOT
}
/cluster/gce/coreos/node.yaml"
"user-data=
${
KUBE_ROOT
}
/cluster/gce/coreos/node.yaml"
\
"configure-node=
${
KUBE_ROOT
}
/cluster/gce/coreos/configure-node.sh"
\
"configure-kubelet=
${
KUBE_ROOT
}
/cluster/gce/coreos/configure-kubelet.sh"
}
# create-master-instance creates the master instance. If called with
# an argument, the argument is used as the name to a reserved IP
# address for the master. (In the case of upgrade/repair, we re-use
# the same IP.)
#
# It requires a whole slew of assumed variables, partially due to to
# the call to write-master-env. Listing them would be rather
# futile. Instead, we list the required calls to ensure any additional
# variables are set:
# ensure-temp-dir
# detect-project
# get-bearer-token
#
function
create-master-instance
()
{
local
address_opt
=
""
[[
-n
${
1
:-}
]]
&&
address_opt
=
"--address
${
1
}
"
write-master-env
gcloud compute instances create
"
${
MASTER_NAME
}
"
\
${
address_opt
}
\
--project
"
${
PROJECT
}
"
\
--zone
"
${
ZONE
}
"
\
--machine-type
"
${
MASTER_SIZE
}
"
\
--image-project
=
"
${
MASTER_IMAGE_PROJECT
}
"
\
--image
"
${
MASTER_IMAGE
}
"
\
--tags
"
${
MASTER_TAG
}
"
\
--network
"
${
NETWORK
}
"
\
--scopes
"storage-ro,compute-rw,monitoring,logging-write"
\
--can-ip-forward
\
--metadata-from-file
\
"kube-env=
${
KUBE_TEMP
}
/master-kube-env.yaml,user-data=
${
KUBE_ROOT
}
/cluster/gce/coreos/master.yaml,configure-node=
${
KUBE_ROOT
}
/cluster/gce/coreos/configure-node.sh,configure-kubelet=
${
KUBE_ROOT
}
/cluster/gce/coreos/configure-kubelet.sh"
\
--disk
"name=
${
MASTER_NAME
}
-pd,device-name=master-pd,mode=rw,boot=no,auto-delete=no"
}
}
cluster/gce/coreos/kube-manifests/addons/cluster-loadbalancing/glbc/default-svc.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
Service
metadata
:
# This must match the --default-backend-service argument of the l7 lb
# controller and is required because GCE mandates a default backend.
name
:
default-http-backend
namespace
:
kube-system
labels
:
k8s-app
:
glbc
kubernetes.io/cluster-service
:
"
true"
kubernetes.io/name
:
"
GLBCDefaultBackend"
spec
:
# The default backend must be of type NodePort.
type
:
NodePort
ports
:
-
port
:
80
targetPort
:
8080
protocol
:
TCP
name
:
http
selector
:
k8s-app
:
glbc
\ No newline at end of file
cluster/gce/coreos/kube-manifests/addons/cluster-loadbalancing/glbc/glbc-controller.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
ReplicationController
metadata
:
name
:
l7-lb-controller
namespace
:
kube-system
labels
:
k8s-app
:
glbc
version
:
v0.5.1
kubernetes.io/cluster-service
:
"
true"
kubernetes.io/name
:
"
GLBC"
spec
:
# There should never be more than 1 controller alive simultaneously.
replicas
:
1
selector
:
k8s-app
:
glbc
version
:
v0.5.1
template
:
metadata
:
labels
:
k8s-app
:
glbc
version
:
v0.5.1
name
:
glbc
kubernetes.io/cluster-service
:
"
true"
spec
:
terminationGracePeriodSeconds
:
600
containers
:
-
name
:
default-http-backend
# Any image is permissable as long as:
# 1. It serves a 404 page at /
# 2. It serves 200 on a /healthz endpoint
image
:
gcr.io/google_containers/defaultbackend:1.0
livenessProbe
:
httpGet
:
path
:
/healthz
port
:
8080
scheme
:
HTTP
initialDelaySeconds
:
30
timeoutSeconds
:
5
ports
:
-
containerPort
:
8080
resources
:
limits
:
cpu
:
10m
memory
:
20Mi
requests
:
cpu
:
10m
memory
:
20Mi
-
image
:
gcr.io/google_containers/glbc:0.5.1
livenessProbe
:
httpGet
:
path
:
/healthz
port
:
8081
scheme
:
HTTP
initialDelaySeconds
:
30
# healthz reaches out to GCE
periodSeconds
:
30
timeoutSeconds
:
5
name
:
l7-lb-controller
resources
:
limits
:
cpu
:
100m
memory
:
100Mi
requests
:
cpu
:
100m
memory
:
50Mi
args
:
-
--default-backend-service=kube-system/default-http-backend
-
--sync-period=300s
\ No newline at end of file
cluster/gce/coreos/kube-manifests/addons/cluster-monitoring/google/heapster-controller.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
ReplicationController
metadata
:
name
:
heapster-v10
namespace
:
kube-system
labels
:
k8s-app
:
heapster
version
:
v10
kubernetes.io/cluster-service
:
"
true"
spec
:
replicas
:
1
selector
:
k8s-app
:
heapster
version
:
v10
template
:
metadata
:
labels
:
k8s-app
:
heapster
version
:
v10
kubernetes.io/cluster-service
:
"
true"
spec
:
containers
:
-
image
:
gcr.io/google_containers/heapster:v0.18.2
name
:
heapster
resources
:
limits
:
cpu
:
100m
memory
:
300Mi
command
:
-
/heapster
-
--source=kubernetes:''
-
--sink=gcm
-
--sink=gcmautoscaling
-
--sink=gcl
-
--stats_resolution=30s
-
--sink_frequency=1m
volumeMounts
:
-
name
:
ssl-certs
mountPath
:
/etc/ssl/certs
readOnly
:
true
-
name
:
usrsharecacerts
mountPath
:
/usr/share/ca-certificates
readOnly
:
true
volumes
:
-
name
:
ssl-certs
hostPath
:
path
:
/etc/ssl/certs
-
name
:
usrsharecacerts
hostPath
:
path
:
/usr/share/ca-certificates
cluster/gce/coreos/kube-manifests/addons/cluster-monitoring/google/heapster-service.yaml
0 → 100644
View file @
a95f1b84
kind
:
Service
apiVersion
:
v1
metadata
:
name
:
heapster
namespace
:
kube-system
labels
:
kubernetes.io/cluster-service
:
"
true"
kubernetes.io/name
:
"
Heapster"
spec
:
ports
:
-
port
:
80
targetPort
:
8082
selector
:
k8s-app
:
heapster
cluster/gce/coreos/kube-manifests/addons/cluster-monitoring/googleinfluxdb/heapster-controller-combined.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
ReplicationController
metadata
:
name
:
heapster-v10
namespace
:
kube-system
labels
:
k8s-app
:
heapster
version
:
v10
kubernetes.io/cluster-service
:
"
true"
spec
:
replicas
:
1
selector
:
k8s-app
:
heapster
version
:
v10
template
:
metadata
:
labels
:
k8s-app
:
heapster
version
:
v10
kubernetes.io/cluster-service
:
"
true"
spec
:
containers
:
-
image
:
gcr.io/google_containers/heapster:v0.18.2
name
:
heapster
resources
:
limits
:
cpu
:
100m
memory
:
300Mi
command
:
-
/heapster
-
--source=kubernetes:''
-
--sink=gcl
-
--sink=gcmautoscaling
-
--sink=influxdb:http://monitoring-influxdb:8086
-
--stats_resolution=30s
-
--sink_frequency=1m
volumeMounts
:
-
name
:
ssl-certs
mountPath
:
/etc/ssl/certs
readOnly
:
true
-
name
:
usrsharecacerts
mountPath
:
/usr/share/ca-certificates
readOnly
:
true
volumes
:
-
name
:
ssl-certs
hostPath
:
path
:
/etc/ssl/certs
-
name
:
usrsharecacerts
hostPath
:
path
:
/usr/share/ca-certificates
cluster/gce/coreos/kube-manifests/addons/cluster-monitoring/influxdb/grafana-service.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
Service
metadata
:
name
:
monitoring-grafana
namespace
:
kube-system
labels
:
kubernetes.io/cluster-service
:
"
true"
kubernetes.io/name
:
"
Grafana"
spec
:
# On production clusters, consider setting up auth for grafana, and
# exposing Grafana either using a LoadBalancer or a public IP.
# type: LoadBalancer
ports
:
-
port
:
80
targetPort
:
3000
selector
:
k8s-app
:
influxGrafana
cluster/gce/coreos/kube-manifests/addons/cluster-monitoring/influxdb/heapster-controller.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
ReplicationController
metadata
:
name
:
heapster-v10
namespace
:
kube-system
labels
:
k8s-app
:
heapster
version
:
v10
kubernetes.io/cluster-service
:
"
true"
spec
:
replicas
:
1
selector
:
k8s-app
:
heapster
version
:
v10
template
:
metadata
:
labels
:
k8s-app
:
heapster
version
:
v10
kubernetes.io/cluster-service
:
"
true"
spec
:
containers
:
-
image
:
gcr.io/google_containers/heapster:v0.18.2
name
:
heapster
resources
:
limits
:
cpu
:
100m
memory
:
300Mi
command
:
-
/heapster
-
--source=kubernetes:''
-
--sink=influxdb:http://monitoring-influxdb:8086
-
--stats_resolution=30s
-
--sink_frequency=1m
cluster/gce/coreos/kube-manifests/addons/cluster-monitoring/influxdb/heapster-service.yaml
0 → 100644
View file @
a95f1b84
kind
:
Service
apiVersion
:
v1
metadata
:
name
:
heapster
namespace
:
kube-system
labels
:
kubernetes.io/cluster-service
:
"
true"
kubernetes.io/name
:
"
Heapster"
spec
:
ports
:
-
port
:
80
targetPort
:
8082
selector
:
k8s-app
:
heapster
cluster/gce/coreos/kube-manifests/addons/cluster-monitoring/influxdb/influxdb-grafana-controller.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
ReplicationController
metadata
:
name
:
monitoring-influxdb-grafana-v2
namespace
:
kube-system
labels
:
k8s-app
:
influxGrafana
version
:
v2
kubernetes.io/cluster-service
:
"
true"
spec
:
replicas
:
1
selector
:
k8s-app
:
influxGrafana
version
:
v2
template
:
metadata
:
labels
:
k8s-app
:
influxGrafana
version
:
v2
kubernetes.io/cluster-service
:
"
true"
spec
:
containers
:
-
image
:
gcr.io/google_containers/heapster_influxdb:v0.4
name
:
influxdb
resources
:
limits
:
cpu
:
100m
memory
:
200Mi
ports
:
-
containerPort
:
8083
hostPort
:
8083
-
containerPort
:
8086
hostPort
:
8086
volumeMounts
:
-
name
:
influxdb-persistent-storage
mountPath
:
/data
-
image
:
beta.gcr.io/google_containers/heapster_grafana:v2.1.1
name
:
grafana
env
:
resources
:
limits
:
cpu
:
100m
memory
:
100Mi
env
:
# This variable is required to setup templates in Grafana.
-
name
:
INFLUXDB_SERVICE_URL
value
:
http://monitoring-influxdb:8086
# The following env variables are required to make Grafana accessible via
# the kubernetes api-server proxy. On production clusters, we recommend
# removing these env variables, setup auth for grafana, and expose the grafana
# service using a LoadBalancer or a public IP.
-
name
:
GF_AUTH_BASIC_ENABLED
value
:
"
false"
-
name
:
GF_AUTH_ANONYMOUS_ENABLED
value
:
"
true"
-
name
:
GF_AUTH_ANONYMOUS_ORG_ROLE
value
:
Admin
-
name
:
GF_SERVER_ROOT_URL
value
:
/api/v1/proxy/namespaces/kube-system/services/monitoring-grafana/
volumeMounts
:
-
name
:
grafana-persistent-storage
mountPath
:
/var
volumes
:
-
name
:
influxdb-persistent-storage
emptyDir
:
{}
-
name
:
grafana-persistent-storage
emptyDir
:
{}
cluster/gce/coreos/kube-manifests/addons/cluster-monitoring/influxdb/influxdb-service.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
Service
metadata
:
name
:
monitoring-influxdb
namespace
:
kube-system
labels
:
kubernetes.io/cluster-service
:
"
true"
kubernetes.io/name
:
"
InfluxDB"
spec
:
ports
:
-
name
:
http
port
:
8083
targetPort
:
8083
-
name
:
api
port
:
8086
targetPort
:
8086
selector
:
k8s-app
:
influxGrafana
cluster/gce/coreos/kube-manifests/addons/cluster-monitoring/standalone/heapster-controller.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
ReplicationController
metadata
:
name
:
heapster-v10
namespace
:
kube-system
labels
:
k8s-app
:
heapster
version
:
v10
kubernetes.io/cluster-service
:
"
true"
spec
:
replicas
:
1
selector
:
k8s-app
:
heapster
version
:
v10
template
:
metadata
:
labels
:
k8s-app
:
heapster
version
:
v10
kubernetes.io/cluster-service
:
"
true"
spec
:
containers
:
-
image
:
gcr.io/google_containers/heapster:v0.18.2
name
:
heapster
resources
:
limits
:
cpu
:
100m
memory
:
300Mi
command
:
-
/heapster
-
--source=kubernetes:''
cluster/gce/coreos/kube-manifests/addons/cluster-monitoring/standalone/heapster-service.yaml
0 → 100644
View file @
a95f1b84
kind
:
Service
apiVersion
:
v1
metadata
:
name
:
heapster
namespace
:
kube-system
labels
:
kubernetes.io/cluster-service
:
"
true"
kubernetes.io/name
:
"
Heapster"
spec
:
ports
:
-
port
:
80
targetPort
:
8082
selector
:
k8s-app
:
heapster
cluster/gce/coreos/kube-manifests/addons/dns/skydns-rc.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
ReplicationController
metadata
:
name
:
kube-dns-v10
namespace
:
kube-system
labels
:
k8s-app
:
kube-dns
version
:
v10
kubernetes.io/cluster-service
:
"
true"
spec
:
replicas
:
${DNS_REPLICAS}
selector
:
k8s-app
:
kube-dns
version
:
v10
template
:
metadata
:
labels
:
k8s-app
:
kube-dns
version
:
v10
kubernetes.io/cluster-service
:
"
true"
spec
:
containers
:
-
name
:
etcd
image
:
gcr.io/google_containers/etcd:2.0.9
resources
:
# keep request = limit to keep this container in guaranteed class
limits
:
cpu
:
100m
memory
:
50Mi
requests
:
cpu
:
100m
memory
:
50Mi
command
:
-
/usr/local/bin/etcd
-
-data-dir
-
/var/etcd/data
-
-listen-client-urls
-
http://127.0.0.1:2379,http://127.0.0.1:4001
-
-advertise-client-urls
-
http://127.0.0.1:2379,http://127.0.0.1:4001
-
-initial-cluster-token
-
skydns-etcd
volumeMounts
:
-
name
:
etcd-storage
mountPath
:
/var/etcd/data
-
name
:
kube2sky
image
:
gcr.io/google_containers/kube2sky:1.12
resources
:
# keep request = limit to keep this container in guaranteed class
limits
:
cpu
:
100m
memory
:
50Mi
requests
:
cpu
:
100m
memory
:
50Mi
args
:
# command = "/kube2sky"
-
-domain=${DNS_DOMAIN}
-
name
:
skydns
image
:
gcr.io/google_containers/skydns:2015-10-13-8c72f8c
resources
:
# keep request = limit to keep this container in guaranteed class
limits
:
cpu
:
100m
memory
:
50Mi
requests
:
cpu
:
100m
memory
:
50Mi
args
:
# command = "/skydns"
-
-machines=http://127.0.0.1:4001
-
-addr=0.0.0.0:53
-
-ns-rotate=false
-
-domain=${DNS_DOMAIN}.
ports
:
-
containerPort
:
53
name
:
dns
protocol
:
UDP
-
containerPort
:
53
name
:
dns-tcp
protocol
:
TCP
livenessProbe
:
httpGet
:
path
:
/healthz
port
:
8080
scheme
:
HTTP
initialDelaySeconds
:
30
timeoutSeconds
:
5
readinessProbe
:
httpGet
:
path
:
/healthz
port
:
8080
scheme
:
HTTP
initialDelaySeconds
:
1
timeoutSeconds
:
5
-
name
:
healthz
image
:
gcr.io/google_containers/exechealthz:1.0
resources
:
# keep request = limit to keep this container in guaranteed class
limits
:
cpu
:
10m
memory
:
20Mi
requests
:
cpu
:
10m
memory
:
20Mi
args
:
-
-cmd=nslookup kubernetes.default.svc.${DNS_DOMAIN} 127.0.0.1 >/dev/null
-
-port=8080
ports
:
-
containerPort
:
8080
protocol
:
TCP
volumes
:
-
name
:
etcd-storage
emptyDir
:
{}
dnsPolicy
:
Default
# Don't use cluster DNS.
\ No newline at end of file
cluster/gce/coreos/kube-manifests/addons/dns/skydns-svc.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
Service
metadata
:
name
:
kube-dns
namespace
:
kube-system
labels
:
k8s-app
:
kube-dns
kubernetes.io/cluster-service
:
"
true"
kubernetes.io/name
:
"
KubeDNS"
spec
:
selector
:
k8s-app
:
kube-dns
clusterIP
:
${DNS_SERVER_IP}
ports
:
-
name
:
dns
port
:
53
protocol
:
UDP
-
name
:
dns-tcp
port
:
53
protocol
:
TCP
cluster/gce/coreos/kube-manifests/addons/fluentd-elasticsearch/es-controller.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
ReplicationController
metadata
:
name
:
elasticsearch-logging-v1
namespace
:
kube-system
labels
:
k8s-app
:
elasticsearch-logging
version
:
v1
kubernetes.io/cluster-service
:
"
true"
spec
:
replicas
:
2
selector
:
k8s-app
:
elasticsearch-logging
version
:
v1
template
:
metadata
:
labels
:
k8s-app
:
elasticsearch-logging
version
:
v1
kubernetes.io/cluster-service
:
"
true"
spec
:
containers
:
-
image
:
gcr.io/google_containers/elasticsearch:1.7
name
:
elasticsearch-logging
resources
:
limits
:
cpu
:
100m
ports
:
-
containerPort
:
9200
name
:
db
protocol
:
TCP
-
containerPort
:
9300
name
:
transport
protocol
:
TCP
volumeMounts
:
-
name
:
es-persistent-storage
mountPath
:
/data
volumes
:
-
name
:
es-persistent-storage
emptyDir
:
{}
cluster/gce/coreos/kube-manifests/addons/fluentd-elasticsearch/es-service.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
Service
metadata
:
name
:
elasticsearch-logging
namespace
:
kube-system
labels
:
k8s-app
:
elasticsearch-logging
kubernetes.io/cluster-service
:
"
true"
kubernetes.io/name
:
"
Elasticsearch"
spec
:
ports
:
-
port
:
9200
protocol
:
TCP
targetPort
:
db
selector
:
k8s-app
:
elasticsearch-logging
cluster/gce/coreos/kube-manifests/addons/fluentd-elasticsearch/kibana-controller.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
ReplicationController
metadata
:
name
:
kibana-logging-v1
namespace
:
kube-system
labels
:
k8s-app
:
kibana-logging
version
:
v1
kubernetes.io/cluster-service
:
"
true"
spec
:
replicas
:
1
selector
:
k8s-app
:
kibana-logging
version
:
v1
template
:
metadata
:
labels
:
k8s-app
:
kibana-logging
version
:
v1
kubernetes.io/cluster-service
:
"
true"
spec
:
containers
:
-
name
:
kibana-logging
image
:
gcr.io/google_containers/kibana:1.3
resources
:
limits
:
cpu
:
100m
env
:
-
name
:
"
ELASTICSEARCH_URL"
value
:
"
http://elasticsearch-logging:9200"
ports
:
-
containerPort
:
5601
name
:
ui
protocol
:
TCP
cluster/gce/coreos/kube-manifests/addons/fluentd-elasticsearch/kibana-service.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
Service
metadata
:
name
:
kibana-logging
namespace
:
kube-system
labels
:
k8s-app
:
kibana-logging
kubernetes.io/cluster-service
:
"
true"
kubernetes.io/name
:
"
Kibana"
spec
:
ports
:
-
port
:
5601
protocol
:
TCP
targetPort
:
ui
selector
:
k8s-app
:
kibana-logging
cluster/gce/coreos/kube-manifests/addons/kube-ui/kube-ui-rc.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
ReplicationController
metadata
:
name
:
kube-ui-v3
namespace
:
kube-system
labels
:
k8s-app
:
kube-ui
version
:
v3
kubernetes.io/cluster-service
:
"
true"
spec
:
replicas
:
1
selector
:
k8s-app
:
kube-ui
version
:
v3
template
:
metadata
:
labels
:
k8s-app
:
kube-ui
version
:
v3
kubernetes.io/cluster-service
:
"
true"
spec
:
containers
:
-
name
:
kube-ui
image
:
gcr.io/google_containers/kube-ui:v3
resources
:
limits
:
cpu
:
100m
memory
:
50Mi
ports
:
-
containerPort
:
8080
livenessProbe
:
httpGet
:
path
:
/
port
:
8080
initialDelaySeconds
:
30
timeoutSeconds
:
5
cluster/gce/coreos/kube-manifests/addons/kube-ui/kube-ui-svc.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
Service
metadata
:
name
:
kube-ui
namespace
:
kube-system
labels
:
k8s-app
:
kube-ui
kubernetes.io/cluster-service
:
"
true"
kubernetes.io/name
:
"
KubeUI"
spec
:
selector
:
k8s-app
:
kube-ui
ports
:
-
port
:
80
targetPort
:
8080
cluster/gce/coreos/kube-manifests/addons/namespace.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
Namespace
metadata
:
name
:
kube-system
cluster/gce/coreos/kube-manifests/addons/registry/registry-pv.yaml
0 → 100644
View file @
a95f1b84
kind
:
PersistentVolume
apiVersion
:
v1
metadata
:
name
:
kube-system-kube-registry-pv
labels
:
kubernetes.io/cluster-service
:
"
true"
spec
:
capacity
:
storage
:
${CLUSTER_REGISTRY_DISK_SIZE}
accessModes
:
-
ReadWriteOnce
gcePersistentDisk
:
pdName
:
${CLUSTER_REGISTRY_DISK}
fsType
:
"
ext4"
cluster/gce/coreos/kube-manifests/addons/registry/registry-pvc.yaml
0 → 100644
View file @
a95f1b84
kind
:
PersistentVolumeClaim
apiVersion
:
v1
metadata
:
name
:
kube-registry-pvc
namespace
:
kube-system
labels
:
kubernetes.io/cluster-service
:
"
true"
spec
:
accessModes
:
-
ReadWriteOnce
resources
:
requests
:
storage
:
${CLUSTER_REGISTRY_DISK_SIZE}
cluster/gce/coreos/kube-manifests/addons/registry/registry-rc.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
ReplicationController
metadata
:
name
:
kube-registry-v0
namespace
:
kube-system
labels
:
k8s-app
:
kube-registry
version
:
v0
kubernetes.io/cluster-service
:
"
true"
spec
:
replicas
:
1
selector
:
k8s-app
:
kube-registry
version
:
v0
template
:
metadata
:
labels
:
k8s-app
:
kube-registry
version
:
v0
kubernetes.io/cluster-service
:
"
true"
spec
:
containers
:
-
name
:
registry
image
:
registry:2
resources
:
limits
:
cpu
:
100m
memory
:
100Mi
env
:
-
name
:
REGISTRY_HTTP_ADDR
value
:
:5000
-
name
:
REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY
value
:
/var/lib/registry
volumeMounts
:
-
name
:
image-store
mountPath
:
/var/lib/registry
ports
:
-
containerPort
:
5000
name
:
registry
protocol
:
TCP
volumes
:
-
name
:
image-store
persistentVolumeClaim
:
claimName
:
kube-registry-pvc
cluster/gce/coreos/kube-manifests/addons/registry/registry-svc.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
Service
metadata
:
name
:
kube-registry
namespace
:
kube-system
labels
:
k8s-app
:
kube-registry
kubernetes.io/cluster-service
:
"
true"
kubernetes.io/name
:
"
KubeRegistry"
spec
:
selector
:
k8s-app
:
kube-registry
ports
:
-
name
:
registry
port
:
5000
protocol
:
TCP
cluster/gce/coreos/kube-manifests/etcd-events.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
Pod
metadata
:
name
:
etcd-server-events-kubernetes-master
namespace
:
kube-system
spec
:
containers
:
-
command
:
-
/bin/sh
-
-c
-
/usr/local/bin/etcd
--listen-peer-urls=http://127.0.0.1:2381
--addr=127.0.0.1:4002
--bind-addr=127.0.0.1:4002
--data-dir=/var/etcd/data-events
1>>/var/log/etcd-events.log 2>&1
image
:
gcr.io/google_containers/etcd:2.0.12
imagePullPolicy
:
IfNotPresent
livenessProbe
:
httpGet
:
host
:
127.0.0.1
path
:
/health
port
:
4002
scheme
:
HTTP
initialDelaySeconds
:
15
timeoutSeconds
:
15
name
:
etcd-container
ports
:
-
containerPort
:
2381
hostPort
:
2381
name
:
serverport
protocol
:
TCP
-
containerPort
:
4002
hostPort
:
4002
name
:
clientport
protocol
:
TCP
resources
:
limits
:
cpu
:
100m
requests
:
cpu
:
100m
volumeMounts
:
-
mountPath
:
/var/etcd
name
:
varetcd
-
mountPath
:
/var/log/etcd-events.log
name
:
varlogetcd
dnsPolicy
:
ClusterFirst
hostNetwork
:
true
nodeName
:
kubernetes-master
restartPolicy
:
Always
terminationGracePeriodSeconds
:
30
volumes
:
-
hostPath
:
path
:
/mnt/master-pd/var/etcd
name
:
varetcd
-
hostPath
:
path
:
/var/log/etcd-events.log
name
:
varlogetcd
cluster/gce/coreos/kube-manifests/etcd.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
Pod
metadata
:
name
:
etcd-server-kubernetes-master
namespace
:
kube-system
spec
:
containers
:
-
command
:
-
/bin/sh
-
-c
-
/usr/local/bin/etcd
--listen-peer-urls=http://127.0.0.1:2380
--addr=127.0.0.1:4001
--bind-addr=127.0.0.1:4001
--data-dir=/var/etcd/data
1>>/var/log/etcd.log 2>&1
image
:
gcr.io/google_containers/etcd:2.0.12
imagePullPolicy
:
IfNotPresent
livenessProbe
:
httpGet
:
host
:
127.0.0.1
path
:
/health
port
:
4001
scheme
:
HTTP
initialDelaySeconds
:
15
timeoutSeconds
:
15
name
:
etcd-container
ports
:
-
containerPort
:
2380
hostPort
:
2380
name
:
serverport
protocol
:
TCP
-
containerPort
:
4001
hostPort
:
4001
name
:
clientport
protocol
:
TCP
resources
:
limits
:
cpu
:
200m
requests
:
cpu
:
200m
volumeMounts
:
-
mountPath
:
/var/etcd
name
:
varetcd
-
mountPath
:
/var/log/etcd.log
name
:
varlogetcd
dnsPolicy
:
ClusterFirst
hostNetwork
:
true
restartPolicy
:
Always
terminationGracePeriodSeconds
:
30
volumes
:
-
hostPath
:
path
:
/mnt/master-pd/var/etcd
name
:
varetcd
-
hostPath
:
path
:
/var/log/etcd.log
name
:
varlogetcd
cluster/gce/coreos/kube-manifests/kube-apiserver.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
Pod
metadata
:
name
:
kube-apiserver-kubernetes-master
namespace
:
kube-system
spec
:
containers
:
-
command
:
-
/bin/sh
-
-c
-
/usr/local/bin/kube-apiserver
--address=127.0.0.1
--etcd-servers=http://127.0.0.1:4001
--etcd-servers-overrides=/events#http://127.0.0.1:4002
--cloud-provider=gce
--admission-control=${ADMISSION_CONTROL}
--service-cluster-ip-range=${SERVICE_CLUSTER_IP_RANGE}
--client-ca-file=/srv/kubernetes/ca.crt
--basic-auth-file=/srv/kubernetes/basic_auth.csv
--tls-cert-file=/srv/kubernetes/server.cert
--tls-private-key-file=/srv/kubernetes/server.key
--secure-port=443
--token-auth-file=/srv/kubernetes/known_tokens.csv
--v=2
--allow-privileged=True
1>>/var/log/kube-apiserver.log 2>&1
image
:
gcr.io/google_containers/kube-apiserver:${KUBE_APISERVER_DOCKER_TAG}
imagePullPolicy
:
IfNotPresent
livenessProbe
:
httpGet
:
host
:
127.0.0.1
path
:
/healthz
port
:
8080
scheme
:
HTTP
initialDelaySeconds
:
15
timeoutSeconds
:
15
name
:
kube-apiserver
ports
:
-
containerPort
:
443
hostPort
:
443
name
:
https
protocol
:
TCP
-
containerPort
:
8080
hostPort
:
8080
name
:
local
protocol
:
TCP
resources
:
limits
:
cpu
:
250m
requests
:
cpu
:
250m
volumeMounts
:
-
mountPath
:
/srv/kubernetes
name
:
srvkube
readOnly
:
true
-
mountPath
:
/var/log/kube-apiserver.log
name
:
logfile
-
mountPath
:
/etc/ssl
name
:
etcssl
readOnly
:
true
-
mountPath
:
/usr/share/ca-certificates
name
:
usrsharecacerts
readOnly
:
true
-
mountPath
:
/srv/sshproxy
name
:
srvsshproxy
dnsPolicy
:
ClusterFirst
hostNetwork
:
true
restartPolicy
:
Always
terminationGracePeriodSeconds
:
30
volumes
:
-
hostPath
:
path
:
/srv/kubernetes
name
:
srvkube
-
hostPath
:
path
:
/var/log/kube-apiserver.log
name
:
logfile
-
hostPath
:
path
:
/etc/ssl
name
:
etcssl
-
hostPath
:
path
:
/usr/share/ca-certificates
name
:
usrsharecacerts
-
hostPath
:
path
:
/srv/sshproxy
name
:
srvsshproxy
cluster/gce/coreos/kube-manifests/kube-controller-manager.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
Pod
metadata
:
name
:
kube-controller-manager-kubernetes-master
namespace
:
kube-system
spec
:
containers
:
-
command
:
-
/bin/sh
-
-c
-
/usr/local/bin/kube-controller-manager
--master=127.0.0.1:8080
--cluster-name=${INSTANCE_PREFIX}
--cluster-cidr=${CLUSTER_IP_RANGE}
--allocate-node-cidrs=true
--cloud-provider=gce
--service-account-private-key-file=/srv/kubernetes/server.key
--v=2
--root-ca-file=/srv/kubernetes/ca.crt
1>>/var/log/kube-controller-manager.log 2>&1
image
:
gcr.io/google_containers/kube-controller-manager:${KUBE_CONTROLLER_MANAGER_DOCKER_TAG}
imagePullPolicy
:
IfNotPresent
livenessProbe
:
httpGet
:
host
:
127.0.0.1
path
:
/healthz
port
:
10252
scheme
:
HTTP
initialDelaySeconds
:
15
timeoutSeconds
:
15
name
:
kube-controller-manager
resources
:
limits
:
cpu
:
200m
requests
:
cpu
:
200m
volumeMounts
:
-
mountPath
:
/srv/kubernetes
name
:
srvkube
readOnly
:
true
-
mountPath
:
/var/log/kube-controller-manager.log
name
:
logfile
-
mountPath
:
/etc/ssl
name
:
etcssl
readOnly
:
true
-
mountPath
:
/usr/share/ca-certificates
name
:
usrsharecacerts
readOnly
:
true
dnsPolicy
:
ClusterFirst
hostNetwork
:
true
restartPolicy
:
Always
terminationGracePeriodSeconds
:
30
volumes
:
-
hostPath
:
path
:
/srv/kubernetes
name
:
srvkube
-
hostPath
:
path
:
/var/log/kube-controller-manager.log
name
:
logfile
-
hostPath
:
path
:
/etc/ssl
name
:
etcssl
-
hostPath
:
path
:
/usr/share/ca-certificates
name
:
usrsharecacerts
cluster/gce/coreos/kube-manifests/kube-scheduler.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
Pod
metadata
:
name
:
kube-scheduler-kubernetes-master
namespace
:
kube-system
spec
:
containers
:
-
command
:
-
/bin/sh
-
-c
-
/usr/local/bin/kube-scheduler
--master=127.0.0.1:8080
--v=2
1>>/var/log/kube-scheduler.log 2>&1
image
:
gcr.io/google_containers/kube-scheduler:${KUBE_SCHEDULER_DOCKER_TAG}
imagePullPolicy
:
IfNotPresent
livenessProbe
:
httpGet
:
host
:
127.0.0.1
path
:
/healthz
port
:
10251
scheme
:
HTTP
initialDelaySeconds
:
15
timeoutSeconds
:
15
name
:
kube-scheduler
resources
:
limits
:
cpu
:
100m
requests
:
cpu
:
100m
volumeMounts
:
-
mountPath
:
/var/log/kube-scheduler.log
name
:
logfile
dnsPolicy
:
ClusterFirst
hostNetwork
:
true
nodeName
:
kubernetes-master
restartPolicy
:
Always
terminationGracePeriodSeconds
:
30
volumes
:
-
hostPath
:
path
:
/var/log/kube-scheduler.log
name
:
logfile
cluster/gce/coreos/kube-manifests/kube-system.json
0 → 100644
View file @
a95f1b84
{
"apiVersion"
:
"v1"
,
"kind"
:
"Namespace"
,
"metadata"
:
{
"name"
:
"kube-system"
}
}
cluster/gce/coreos/kube-manifests/kubelet-config.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
Config
users
:
-
name
:
kubelet
user
:
client-certificate-data
:
${KUBELET_CERT}
client-key-data
:
${KUBELET_KEY}
clusters
:
-
name
:
local
cluster
:
certificate-authority-data
:
${CA_CERT}
contexts
:
-
context
:
cluster
:
local
user
:
kubelet
name
:
service-account-context
current-context
:
service-account-context
cluster/gce/coreos/kube-manifests/kubeproxy-config.yaml
0 → 100644
View file @
a95f1b84
apiVersion
:
v1
kind
:
Config
users
:
-
name
:
kube-proxy
user
:
token
:
${KUBE_PROXY_TOKEN}
clusters
:
-
name
:
local
cluster
:
certificate-authority-data
:
${CA_CERT}
contexts
:
-
context
:
cluster
:
local
user
:
kube-proxy
name
:
service-account-context
current-context
:
service-account-context
cluster/gce/coreos/master.yaml
0 → 100644
View file @
a95f1b84
#cloud-config
coreos
:
units
:
-
name
:
kube-env.service
command
:
start
content
:
|
[Unit]
Description=Fetch kubernetes-node-environment
Requires=network-online.target
After=network-online.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=/usr/bin/curl --fail --silent --show-error \
-H "X-Google-Metadata-Request: True" \
-o /etc/kube-env.yaml \
http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-env
# Transform the yaml to env file.
ExecStartPre=/usr/bin/mv /etc/kube-env.yaml /etc/kube-env
ExecStart=/usr/bin/sed -i "s/: '/=/;s/'$//" /etc/kube-env
-
name
:
kubernetes-install-rkt.service
command
:
start
content
:
|
[Unit]
Description=Fetch rkt
Documentation=http://github.com/coreos/rkt
Requires=network-online.target
After=network-online.target
[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/kube-env
ExecStartPre=/usr/bin/mkdir -p /etc/rkt
ExecStartPre=/usr/bin/mkdir -p /opt/downloads
ExecStartPre=/usr/bin/curl --location --create-dirs --output /opt/downloads/rkt.tar.gz https://github.com/coreos/rkt/releases/download/v${RKT_VERSION}/rkt-v${RKT_VERSION}.tar.gz
ExecStart=/usr/bin/tar xf /opt/downloads/rkt.tar.gz -C /opt --overwrite
-
name
:
kubernetes-download-salt.service
command
:
start
content
:
|
[Unit]
Description=Download salt
Requires=network-online.target
After=network-online.target
Requires=kube-env.service
After=kube-env.service
[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/kube-env
ExecStartPre=/usr/bin/mkdir -p /opt/downloads
ExecStartPre=/usr/bin/curl --location --create-dirs --output /opt/downloads/kubernetes-salt.tar.gz ${SALT_TAR_URL}
# TODO(yifan): Check hash.
ExecStart=/usr/bin/tar xf /opt/downloads/kubernetes-salt.tar.gz -C /opt --overwrite
-
name
:
kubernetes-download-manifests.service
command
:
start
content
:
|
[Unit]
Description=Download manifests
Requires=network-online.target
After=network-online.target
Requires=kube-env.service
After=kube-env.service
[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/kube-env
ExecStartPre=/usr/bin/mkdir -p /opt/downloads
ExecStartPre=/usr/bin/curl --location --create-dirs --output /opt/downloads/kubernetes-manifests.tar.gz ${KUBE_MANIFESTS_TAR_URL}
# TODO(yifan): Check hash.
ExecStartPre=/usr/bin/mkdir -p /opt/kube-manifests
ExecStart=/usr/bin/tar xf /opt/downloads/kubernetes-manifests.tar.gz -C /opt/kube-manifests --overwrite
-
name
:
kubernetes-install-node.service
command
:
start
content
:
|
[Unit]
Description=Install Kubernetes Server
Requires=network-online.target
After=network-online.target
Requires=kube-env.service
After=kube-env.service
[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/kube-env
ExecStartPre=/usr/bin/mkdir -p /opt/downloads
ExecStartPre=/usr/bin/curl --location --create-dirs --output /opt/downloads/kubernetes-server-linux-amd64.tar.gz ${SERVER_BINARY_TAR_URL}
# TODO(yifan): Check hash.
ExecStart=/usr/bin/tar xf /opt/downloads/kubernetes-server-linux-amd64.tar.gz -C /opt --overwrite
-
name
:
kubelet.service
command
:
start
content
:
|
[Unit]
Description=Run Kubelet service
Requires=network-online.target
After=network-online.target
Requires=kube-env.service
After=kube-env.service
Requires=kubernetes-download-manifests.service
After=kubernetes-download-manifests.service
[Service]
EnvironmentFile=/etc/kube-env
ExecStartPre=/usr/bin/curl --fail --silent --show-error \
-H "X-Google-Metadata-Request: True" \
-o /run/configure-kubelet.sh \
http://metadata.google.internal/computeMetadata/v1/instance/attributes/configure-kubelet
ExecStartPre=/usr/bin/chmod 0755 /run/configure-kubelet.sh
ExecStartPre=/run/configure-kubelet.sh
ExecStart=/opt/kubernetes/server/bin/kubelet \
--api-servers=https://${INSTANCE_PREFIX}-master \
--enable-debugging-handlers=false \
--cloud-provider=gce \
--config=/etc/kubernetes/manifests \
--allow-privileged=true \
--v=2 \
--cluster-dns=${DNS_SERVER_IP} \
--cluster-domain=${DNS_DOMAIN} \
--logtostderr=true \
--container-runtime=${KUBERNETES_CONTAINER_RUNTIME} \
--rkt-path=/opt/rkt-v${RKT_VERSON}/rkt \
--configure-cbr0=${KUBERNETES_CONFIGURE_CBR0} \
--pod-cidr=${MASTER_IP_RANGE} \
--register-schedulable=false \
--reconcile-cidr=false
Restart=always
RestartSec=10
-
name
:
docker.service
command
:
start
drop-ins
:
-
name
:
50-docker-opts.conf
content
:
|
[Service]
Environment='DOCKER_OPTS=--bridge=cbr0 --iptables=false --ip-masq=false'
MountFlags=slave
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
Restart=always
RestartSec=2s
StartLimitInterval=0
-
name
:
kubernetes-configure-node.service
command
:
start
content
:
|
[Unit]
Description=Configure Node For Kubernetes service
Requires=kubernetes-install-node.service
After=kubernetes-install-node.service
Requires=kubernetes-install-rkt.service
After=kubernetes-install-rkt.service
Requires=kubernetes-download-salt.service
After=kubernetes-download-salt.service
Requires=kubernetes-download-manifests.service
After=kubernetes-download-manifests.service
# Need the kubelet/docker running because we will use docker load for docker images.
Requires=kubelet.service
After=kubelet.service
[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/kube-env
ExecStartPre=/usr/bin/curl --fail --silent --show-error \
-H "X-Google-Metadata-Request: True" \
-o /run/configure-node.sh \
http://metadata.google.internal/computeMetadata/v1/instance/attributes/configure-node
ExecStartPre=/usr/bin/chmod 0755 /run/configure-node.sh
ExecStart=/run/configure-node.sh
-
name
:
kubernetes-addons.service
command
:
start
content
:
|
[Unit]
Description=Start Kubernetes addons and watch for updates.
Requires=kubernetes-configure-node.service
After=kubernetes-configure-node.service
[Service]
Environment=KUBECTL_BIN=/opt/kubernetes/server/bin/kubectl
Environment=kubelet_kubeconfig_file=/var/lib/kubelet/kubeconfig
ExecStartPre=/usr/bin/chmod 0755 /opt/kubernetes/saltbase/salt/kube-addons/kube-addons.sh
ExecStart=/opt/kubernetes/saltbase/salt/kube-addons/kube-addons.sh
Restart=always
RestartSec=10
cluster/gce/coreos/node.yaml
View file @
a95f1b84
#cloud-config
#cloud-config
write_files
:
-
path
:
/run/configure-hostname.sh
permissions
:
"
0755"
content
:
|
#!/bin/bash -e
set -x
source /etc/kube-env
hostnamectl set-hostname $(hostname | cut -f1 -d.)
-
path
:
/run/setup-auth.sh
permissions
:
"
0755"
content
:
|
#!/bin/bash -e
set -x
source /etc/kube-env
/usr/bin/mkdir -p /var/lib/kubelet
cat > /var/lib/kubelet/kubeconfig << EOF
apiVersion: v1
kind: Config
users:
- name: kubelet
user:
token: ${KUBELET_TOKEN}
clusters:
- name: local
cluster:
insecure-skip-tls-verify: true
contexts:
- context:
cluster: local
user: kubelet
name: service-account-context
current-context: service-account-context
EOF
-
path
:
/run/config-kube-proxy.sh
permissions
:
"
0755"
content
:
|
#!/bin/bash -e
set -x
source /etc/kube-env
/usr/bin/mkdir -p /var/lib/kube-proxy
cat > /var/lib/kube-proxy/kubeconfig << EOF
apiVersion: v1
kind: Config
users:
- name: kube-proxy
user:
token: ${KUBE_PROXY_TOKEN}
clusters:
- name: local
cluster:
insecure-skip-tls-verify: true
contexts:
- context:
cluster: local
user: kube-proxy
name: service-account-context
current-context: service-account-context
EOF
coreos
:
coreos
:
units
:
units
:
-
name
:
kube-env.service
-
name
:
kube-env.service
...
@@ -80,34 +17,31 @@ coreos:
...
@@ -80,34 +17,31 @@ coreos:
-o /etc/kube-env.yaml \
-o /etc/kube-env.yaml \
http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-env
http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-env
# Transform the yaml to env file.
# Transform the yaml to env file.
ExecStartPre=/usr/bin/
cp
/etc/kube-env.yaml /etc/kube-env
ExecStartPre=/usr/bin/
mv
/etc/kube-env.yaml /etc/kube-env
ExecStart=/usr/bin/sed -i "s/: '/=/;s/'$//" /etc/kube-env
ExecStart=/usr/bin/sed -i "s/: '/=/;s/'$//" /etc/kube-env
-
name
:
kubernetes-install-rkt.service
-
name
:
kubernetes-install-rkt.service
command
:
start
command
:
start
content
:
|
content
:
|
[Unit]
[Unit]
Description=Fetch
Rocke
t
Description=Fetch
rk
t
Documentation=http://github.com/coreos/rkt
Documentation=http://github.com/coreos/rkt
Requires=network-online.target
Requires=network-online.target
After=network-online.target
After=network-online.target
[Service]
[Service]
Type=oneshot
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/kube-env
EnvironmentFile=/etc/kube-env
ExecStartPre=/usr/bin/rm -rf /opt/rkt
ExecStartPre=/usr/bin/mkdir -p /opt/rkt
ExecStartPre=/usr/bin/mkdir -p /etc/rkt
ExecStartPre=/usr/bin/mkdir -p /etc/rkt
ExecStartPre=/usr/bin/wget \
ExecStartPre=/usr/bin/mkdir -p /opt/downloads
-O /opt/rkt/rkt-v${RKT_VERSION}.tar.gz \
ExecStartPre=/usr/bin/curl --location --create-dirs --output /opt/downloads/rkt.tar.gz https://github.com/coreos/rkt/releases/download/v${RKT_VERSION}/rkt-v${RKT_VERSION}.tar.gz
https://github.com/coreos/rkt/releases/download/v${RKT_VERSION}/rkt-v${RKT_VERSION}.tar.gz
ExecStart=/usr/bin/tar xf /opt/downloads/rkt.tar.gz -C /opt --overwrite
ExecStartPre=/usr/bin/tar xzvf /opt/rkt/rkt-v${RKT_VERSION}.tar.gz -C /opt --overwrite
ExecStart=/usr/bin/mv /opt/rkt-v${RKT_VERSION} /opt/rkt/rkt
-
name
:
kubernetes-
install-minion
.service
-
name
:
kubernetes-
download-manifests
.service
command
:
start
command
:
start
content
:
|
content
:
|
[Unit]
[Unit]
Description=
Install Kubernetes Server
Description=
Download manifests
Requires=network-online.target
Requires=network-online.target
After=network-online.target
After=network-online.target
Requires=kube-env.service
Requires=kube-env.service
...
@@ -116,37 +50,48 @@ coreos:
...
@@ -116,37 +50,48 @@ coreos:
Type=oneshot
Type=oneshot
RemainAfterExit=yes
RemainAfterExit=yes
EnvironmentFile=/etc/kube-env
EnvironmentFile=/etc/kube-env
ExecStartPre=/usr/bin/mkdir -p /opt/kubernetes/pkg
ExecStartPre=/usr/bin/mkdir -p /opt/downloads
ExecStartPre=/usr/bin/curl --location --create-dirs --output /opt/kubernetes/pkg/kubernetes-server-linux-amd64.tar.gz ${SERVER_BINARY_TAR_URL}
ExecStartPre=/usr/bin/curl --location --create-dirs --output /opt/downloads/kubernetes-manifests.tar.gz ${KUBE_MANIFESTS_TAR_URL}
ExecStart=/usr/bin/tar xf /opt/kubernetes/pkg/kubernetes-server-linux-amd64.tar.gz -C /opt --overwrite
# TODO(yifan): Check hash.
ExecStartPre=/usr/bin/mkdir -p /opt/kube-manifests
ExecStart=/usr/bin/tar xf /opt/downloads/kubernetes-manifests.tar.gz -C /opt/kube-manifests --overwrite
-
name
:
kubernetes-
preparation
.service
-
name
:
kubernetes-
install-node
.service
command
:
start
command
:
start
content
:
|
content
:
|
[Unit]
[Unit]
Description=
Configure Node For Kubernetes service
Description=
Install Kubernetes Server
Requires=
kubernetes-install-minion.service
Requires=
network-online.target
After=
kubernetes-install-minion.service
After=
network-online.target
Requires=kube
rnetes-install-rkt
.service
Requires=kube
-env
.service
After=kube
rnetes-install-rkt
.service
After=kube
-env
.service
[Service]
[Service]
Type=oneshot
Type=oneshot
RemainAfterExit=yes
RemainAfterExit=yes
EnvironmentFile=/etc/kube-env
EnvironmentFile=/etc/kube-env
# TODO(dawnchen): Push this to separate write-files
ExecStartPre=/usr/bin/mkdir -p /opt/kubernetes/pkg
ExecStart=/run/configure-hostname.sh
ExecStartPre=/usr/bin/curl --location --create-dirs --output /opt/kubernetes/pkg/kubernetes-server-linux-amd64.tar.gz ${SERVER_BINARY_TAR_URL}
ExecStart=/usr/bin/tar xf /opt/kubernetes/pkg/kubernetes-server-linux-amd64.tar.gz -C /opt --overwrite
-
name
:
kubelet.service
-
name
:
kubelet.service
command
:
start
command
:
start
content
:
|
content
:
|
[Unit]
[Unit]
Description=Run Kubelet service
Description=Run Kubelet service
Requires=kubernetes-preparation.service
Requires=network-online.target
After=kubernetes-preparation.service
After=network-online.target
Requires=kube-env.service
After=kube-env.service
Requires=kubernetes-download-manifests.service
After=kubernetes-download-manifests.service
[Service]
[Service]
EnvironmentFile=/etc/kube-env
EnvironmentFile=/etc/kube-env
ExecStartPre=/usr/bin/mkdir -p /etc/kubernetes/manifests
ExecStartPre=/usr/bin/curl --fail --silent --show-error \
ExecStartPre=/run/setup-auth.sh
-H "X-Google-Metadata-Request: True" \
-o /run/configure-kubelet.sh \
http://metadata.google.internal/computeMetadata/v1/instance/attributes/configure-kubelet
ExecStartPre=/usr/bin/chmod 0755 /run/configure-kubelet.sh
ExecStartPre=/run/configure-kubelet.sh
ExecStart=/opt/kubernetes/server/bin/kubelet \
ExecStart=/opt/kubernetes/server/bin/kubelet \
--api-servers=https://${INSTANCE_PREFIX}-master \
--api-servers=https://${INSTANCE_PREFIX}-master \
--enable-debugging-handlers=true \
--enable-debugging-handlers=true \
...
@@ -158,9 +103,8 @@ coreos:
...
@@ -158,9 +103,8 @@ coreos:
--cluster-domain=${DNS_DOMAIN} \
--cluster-domain=${DNS_DOMAIN} \
--logtostderr=true \
--logtostderr=true \
--container-runtime=${KUBERNETES_CONTAINER_RUNTIME} \
--container-runtime=${KUBERNETES_CONTAINER_RUNTIME} \
--rkt-path=/opt/rkt/rkt/rkt \
--rkt-path=/opt/rkt-v${RKT_VERSON}/rkt \
--configure-cbr0=${KUBERNETES_CONFIGURE_CBR0} \
--configure-cbr0=${KUBERNETES_CONFIGURE_CBR0}
--pod-cidr=${MASTER_IP_RANGE} \
Restart=always
Restart=always
RestartSec=10
RestartSec=10
...
@@ -169,15 +113,12 @@ coreos:
...
@@ -169,15 +113,12 @@ coreos:
content
:
|
content
:
|
[Unit]
[Unit]
Description=Start Kube-proxy service as Daemon
Description=Start Kube-proxy service as Daemon
Requires=kubernetes-install-minion.service
Requires=kubernetes-configure-node.service
After=kubernetes-install-minion.service
After=kubernetes-configure-node.service
Requires=kubernetes-install-rkt.service
After=kubernetes-install-rkt.service
[Service]
[Service]
EnvironmentFile=/etc/kube-env
EnvironmentFile=/etc/kube-env
ExecStartPre=/run/config-kube-proxy.sh
ExecStart=/opt/kubernetes/server/bin/kube-proxy \
ExecStart=/opt/kubernetes/server/bin/kube-proxy \
--master=https://${KUBERNETES_MASTER_NAME}
.c.${PROJECT_ID}.internal
\
--master=https://${KUBERNETES_MASTER_NAME} \
--kubeconfig=/var/lib/kube-proxy/kubeconfig \
--kubeconfig=/var/lib/kube-proxy/kubeconfig \
--v=2 \
--v=2 \
--logtostderr=true
--logtostderr=true
...
@@ -191,3 +132,32 @@ coreos:
...
@@ -191,3 +132,32 @@ coreos:
content
:
|
content
:
|
[Service]
[Service]
Environment='DOCKER_OPTS=--bridge=cbr0 --iptables=false --ip-masq=false'
Environment='DOCKER_OPTS=--bridge=cbr0 --iptables=false --ip-masq=false'
MountFlags=slave
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
Restart=always
RestartSec=2s
StartLimitInterval=0
-
name
:
kubernetes-configure-node.service
command
:
start
content
:
|
[Unit]
Description=Configure Node For Kubernetes service
Requires=kubernetes-install-node.service
After=kubernetes-install-node.service
Requires=kubernetes-install-rkt.service
After=kubernetes-install-rkt.service
Requires=kubernetes-download-manifests.service
After=kubernetes-download-manifests.service
[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/kube-env
ExecStartPre=/usr/bin/curl --fail --silent --show-error \
-H "X-Google-Metadata-Request: True" \
-o /run/configure-node.sh \
http://metadata.google.internal/computeMetadata/v1/instance/attributes/configure-node
ExecStartPre=/usr/bin/chmod 0755 /run/configure-node.sh
ExecStart=/run/configure-node.sh
cluster/gce/util.sh
View file @
a95f1b84
...
@@ -212,7 +212,7 @@ function upload-server-tars() {
...
@@ -212,7 +212,7 @@ function upload-server-tars() {
SERVER_BINARY_TAR_URL
=
"
${
server_binary_gs_url
/gs
:
\/\//https
://storage.googleapis.com/
}
"
SERVER_BINARY_TAR_URL
=
"
${
server_binary_gs_url
/gs
:
\/\//https
://storage.googleapis.com/
}
"
SALT_TAR_URL
=
"
${
salt_gs_url
/gs
:
\/\//https
://storage.googleapis.com/
}
"
SALT_TAR_URL
=
"
${
salt_gs_url
/gs
:
\/\//https
://storage.googleapis.com/
}
"
if
[[
"
${
OS_DISTRIBUTION
}
"
==
"trusty"
]]
;
then
if
[[
"
${
OS_DISTRIBUTION
}
"
==
"trusty"
||
"
${
OS_DISTRIBUTION
}
"
==
"coreos"
]]
;
then
local
kube_manifests_gs_url
=
"
${
staging_path
}
/
${
KUBE_MANIFESTS_TAR
##*/
}
"
local
kube_manifests_gs_url
=
"
${
staging_path
}
/
${
KUBE_MANIFESTS_TAR
##*/
}
"
KUBE_MANIFESTS_TAR_HASH
=
$(
sha1sum-file
"
${
KUBE_MANIFESTS_TAR
}
"
)
KUBE_MANIFESTS_TAR_HASH
=
$(
sha1sum-file
"
${
KUBE_MANIFESTS_TAR
}
"
)
copy-if-not-staged
"
${
staging_path
}
"
"
${
kube_manifests_gs_url
}
"
"
${
KUBE_MANIFESTS_TAR
}
"
"
${
KUBE_MANIFESTS_TAR_HASH
}
"
copy-if-not-staged
"
${
staging_path
}
"
"
${
kube_manifests_gs_url
}
"
"
${
KUBE_MANIFESTS_TAR
}
"
"
${
KUBE_MANIFESTS_TAR_HASH
}
"
...
@@ -1513,6 +1513,8 @@ EOF
...
@@ -1513,6 +1513,8 @@ EOF
if
[[
"
${
OS_DISTRIBUTION
}
"
==
"coreos"
]]
;
then
if
[[
"
${
OS_DISTRIBUTION
}
"
==
"coreos"
]]
;
then
# CoreOS-only env vars. TODO(yifan): Make them available on other distros.
# CoreOS-only env vars. TODO(yifan): Make them available on other distros.
cat
>>
$file
<<
EOF
cat
>>
$file
<<
EOF
KUBE_MANIFESTS_TAR_URL:
$(
yaml-quote
${
KUBE_MANIFESTS_TAR_URL
})
KUBE_MANIFESTS_TAR_HASH:
$(
yaml-quote
${
KUBE_MANIFESTS_TAR_HASH
})
KUBERNETES_CONTAINER_RUNTIME:
$(
yaml-quote
${
CONTAINER_RUNTIME
:-
docker
})
KUBERNETES_CONTAINER_RUNTIME:
$(
yaml-quote
${
CONTAINER_RUNTIME
:-
docker
})
RKT_VERSION:
$(
yaml-quote
${
RKT_VERSION
:-})
RKT_VERSION:
$(
yaml-quote
${
RKT_VERSION
:-})
RKT_PATH:
$(
yaml-quote
${
RKT_PATH
:-})
RKT_PATH:
$(
yaml-quote
${
RKT_PATH
:-})
...
...
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