Merge branch 'rename-to-kube' of https://github.com/eparis/kubernetes into eparis-rename-to-kube

* 'rename-to-kube' of https://github.com/eparis/kubernetes:
  rename kube server binaries to kube-

Conflicts:
	docs/salt.md
This commit is contained in:
Joe Beda 2014-11-17 09:52:10 -08:00
commit 66d287f7e4
53 changed files with 235 additions and 235 deletions

View File

@ -83,10 +83,10 @@ readonly DOCKER_DATA_MOUNT_ARGS=(
readonly KUBE_RUN_IMAGE_BASE="kubernetes" readonly KUBE_RUN_IMAGE_BASE="kubernetes"
readonly KUBE_RUN_IMAGES=( readonly KUBE_RUN_IMAGES=(
apiserver kube-apiserver
controller-manager kube-controller-manager
proxy kube-proxy
scheduler kube-scheduler
kubelet kubelet
bootstrap bootstrap
) )

View File

@ -14,4 +14,4 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
./apiserver -address=0.0.0.0 -etcd_servers="${ETCD_SERVERS}" ./kube-apiserver -address=0.0.0.0 -etcd_servers="${ETCD_SERVERS}"

View File

@ -31,26 +31,26 @@ containers:
hostPort: 4001 hostPort: 4001
containerPort: 4001 containerPort: 4001
protocol: TCP protocol: TCP
- name: apiserver - name: kube-apiserver
image: kubernetes image: kubernetes
imagePullPolicy: never imagePullPolicy: never
ports: ports:
- name: apiserver-port - name: kube-apiserver-port
hostPort: 8080 hostPort: 8080
containerPort: 8080 containerPort: 8080
protocol: TCP protocol: TCP
command: ["/kubernetes/apiserver", "-v=5", "-address=0.0.0.0", "-etcd_servers=http://127.0.0.1:4001"] command: ["/kubernetes/kube-apiserver", "-v=5", "-address=0.0.0.0", "-etcd_servers=http://127.0.0.1:4001"]
- name: controller-manager - name: controller-manager
image: kubernetes image: kubernetes
imagePullPolicy: never imagePullPolicy: never
command: ["/kubernetes/controller-manager", "-v=5", "-master=127.0.0.1:8080", "-machines=${KUBELET_IP}"] command: ["/kubernetes/kube-controller-manager", "-v=5", "-master=127.0.0.1:8080", "-machines=${KUBELET_IP}"]
- name: proxy - name: proxy
image: kubernetes image: kubernetes
imagePullPolicy: never imagePullPolicy: never
command: ["/kubernetes/proxy", "-v=5", "-etcd_servers=http://127.0.0.1:4001"] command: ["/kubernetes/kube-proxy", "-v=5", "-etcd_servers=http://127.0.0.1:4001"]
- name: scheduler - name: scheduler
image: kubernetes image: kubernetes
imagePullPolicy: never imagePullPolicy: never
command: ["/kubernetes/scheduler", "-v=5", "-master=127.0.0.1:8080"] command: ["/kubernetes/kube-scheduler", "-v=5", "-master=127.0.0.1:8080"]
EOF EOF
./kubelet -v=5 -address=0.0.0.0 -hostname_override=${KUBELET_IP} -etcd_servers=http://${HOST_IP}:4001 -config pod.yaml ./kubelet -v=5 -address=0.0.0.0 -hostname_override=${KUBELET_IP} -etcd_servers=http://${HOST_IP}:4001 -config pod.yaml

View File

@ -18,4 +18,4 @@
# configuration and that we have a local minion. # configuration and that we have a local minion.
KUBE_MINIONS="${KUBE_MINIONS:-$(hostname -f)}" KUBE_MINIONS="${KUBE_MINIONS:-$(hostname -f)}"
./controller-manager -master="${API_SERVER}" --machines="${KUBE_MINIONS}" ./kube-controller-manager -master="${API_SERVER}" --machines="${KUBE_MINIONS}"

View File

@ -14,4 +14,4 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
./proxy --etcd_servers="${ETCD_SERVERS}" ./kube-proxy --etcd_servers="${ETCD_SERVERS}"

View File

@ -14,4 +14,4 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
./scheduler -master="${API_SERVER}" ./kube-scheduler -master="${API_SERVER}"

View File

@ -7,8 +7,8 @@ write_files:
#!/bin/sh #!/bin/sh
m=$(echo $(etcdctl ls --recursive /corekube/minions | cut -d/ -f4 | sort) | tr ' ' ,) m=$(echo $(etcdctl ls --recursive /corekube/minions | cut -d/ -f4 | sort) | tr ' ' ,)
echo "Found $m" echo "Found $m"
mkdir -p /run/apiserver mkdir -p /run/kube-apiserver
echo "MINIONS=$m" > /run/apiserver/minions.env echo "MINIONS=$m" > /run/kube-apiserver/minions.env
- path: /opt/bin/git-kubernetes-nginx.sh - path: /opt/bin/git-kubernetes-nginx.sh
permissions: 0755 permissions: 0755
content: | content: |
@ -75,21 +75,21 @@ coreos:
After=download-release.service After=download-release.service
Requires=download-release.service Requires=download-release.service
[Service] [Service]
EnvironmentFile=-/run/apiserver/minions.env EnvironmentFile=-/run/kube-apiserver/minions.env
ExecStartPre=/usr/bin/ln -sf /opt/kubernetes/server/bin/apiserver /opt/bin/apiserver ExecStartPre=/usr/bin/ln -sf /opt/kubernetes/server/bin/kube-apiserver /opt/bin/kube-apiserver
ExecStart=/opt/bin/apiserver --address=127.0.0.1 --port=8080 --etcd_servers=http://127.0.0.1:4001 --portal_net=PORTAL_NET --logtostderr=true ExecStart=/opt/bin/kube-apiserver --address=127.0.0.1 --port=8080 --etcd_servers=http://127.0.0.1:4001 --portal_net=PORTAL_NET --logtostderr=true
Restart=always Restart=always
RestartSec=2 RestartSec=2
- name: master-apiserver-sighup.path - name: master-apiserver-sighup.path
command: start command: start
content: | content: |
[Path] [Path]
PathChanged=/run/apiserver/minions.env PathChanged=/run/kube-apiserver/minions.env
- name: master-apiserver-sighup.service - name: master-apiserver-sighup.service
command: start command: start
content: | content: |
[Service] [Service]
ExecStart=/usr/bin/pkill -SIGHUP -f apiserver ExecStart=/usr/bin/pkill -SIGHUP -f kube-apiserver
- name: minion-finder.service - name: minion-finder.service
command: start command: start
content: | content: |
@ -115,8 +115,8 @@ coreos:
After=master-apiserver.service After=master-apiserver.service
Requires=master-apiserver.service Requires=master-apiserver.service
[Service] [Service]
ExecStartPre=/usr/bin/ln -sf /opt/kubernetes/server/bin/controller-manager /opt/bin/controller-manager ExecStartPre=/usr/bin/ln -sf /opt/kubernetes/server/bin/kube-controller-manager /opt/bin/kube-controller-manager
ExecStart=/opt/bin/controller-manager --master=127.0.0.1:8080 --machines=${MINIONS} --logtostderr=true ExecStart=/opt/bin/kube-controller-manager --master=127.0.0.1:8080 --machines=${MINIONS} --logtostderr=true
Restart=always Restart=always
RestartSec=2 RestartSec=2
- name: master-scheduler.service - name: master-scheduler.service
@ -130,8 +130,8 @@ coreos:
After=master-apiserver.service After=master-apiserver.service
Requires=master-apiserver.service Requires=master-apiserver.service
[Service] [Service]
ExecStartPre=/usr/bin/ln -sf /opt/kubernetes/server/bin/scheduler /opt/bin/scheduler ExecStartPre=/usr/bin/ln -sf /opt/kubernetes/server/bin/kube-scheduler /opt/bin/kube-scheduler
ExecStart=/opt/bin/scheduler --master=127.0.0.1:8080 --logtostderr=true ExecStart=/opt/bin/kube-scheduler --master=127.0.0.1:8080 --logtostderr=true
Restart=always Restart=always
RestartSec=10 RestartSec=10
#Running nginx service with --net="host" is a necessary evil until running all k8s services in docker. #Running nginx service with --net="host" is a necessary evil until running all k8s services in docker.

View File

@ -119,8 +119,8 @@ coreos:
After=download-release.service After=download-release.service
Requires=download-release.service Requires=download-release.service
[Service] [Service]
ExecStartPre=/usr/bin/ln -sf /opt/kubernetes/server/bin/proxy /opt/bin/proxy ExecStartPre=/usr/bin/ln -sf /opt/kubernetes/server/bin/kube-proxy /opt/bin/kube-proxy
ExecStart=/opt/bin/proxy --bind_address=$private_ipv4 --etcd_servers=http://127.0.0.1:4001 --logtostderr=true ExecStart=/opt/bin/kube-proxy --bind_address=$private_ipv4 --etcd_servers=http://127.0.0.1:4001 --logtostderr=true
Restart=always Restart=always
RestartSec=2 RestartSec=2
- name: minion-advertiser.service - name: minion-advertiser.service

View File

@ -1,44 +1,44 @@
{% if grains['os_family'] == 'RedHat' %} {% if grains['os_family'] == 'RedHat' %}
{% set environment_file = '/etc/sysconfig/apiserver' %} {% set environment_file = '/etc/sysconfig/kube-apiserver' %}
{% else %} {% else %}
{% set environment_file = '/etc/default/apiserver' %} {% set environment_file = '/etc/default/kube-apiserver' %}
{% endif %} {% endif %}
{{ environment_file }}: {{ environment_file }}:
file.managed: file.managed:
- source: salt://apiserver/default - source: salt://kube-apiserver/default
- template: jinja - template: jinja
- user: root - user: root
- group: root - group: root
- mode: 644 - mode: 644
/usr/local/bin/apiserver: /usr/local/bin/kube-apiserver:
file.managed: file.managed:
- source: salt://kube-bins/apiserver - source: salt://kube-bins/kube-apiserver
- user: root - user: root
- group: root - group: root
- mode: 755 - mode: 755
{% if grains['os_family'] == 'RedHat' %} {% if grains['os_family'] == 'RedHat' %}
/usr/lib/systemd/system/apiserver.service: /usr/lib/systemd/system/kube-apiserver.service:
file.managed: file.managed:
- source: salt://apiserver/apiserver.service - source: salt://kube-apiserver/kube-apiserver.service
- user: root - user: root
- group: root - group: root
{% else %} {% else %}
/etc/init.d/apiserver: /etc/init.d/kube-apiserver:
file.managed: file.managed:
- source: salt://apiserver/initd - source: salt://kube-apiserver/initd
- user: root - user: root
- group: root - group: root
- mode: 755 - mode: 755
{% endif %} {% endif %}
apiserver: kube-apiserver:
group.present: group.present:
- system: True - system: True
user.present: user.present:
@ -47,14 +47,14 @@ apiserver:
- groups: - groups:
- kube-cert - kube-cert
- shell: /sbin/nologin - shell: /sbin/nologin
- home: /var/apiserver - home: /var/kube-apiserver
- require: - require:
- group: apiserver - group: kube-apiserver
service.running: service.running:
- enable: True - enable: True
- watch: - watch:
- file: {{ environment_file }} - file: {{ environment_file }}
- file: /usr/local/bin/apiserver - file: /usr/local/bin/kube-apiserver
{% if grains['os_family'] != 'RedHat' %} {% if grains['os_family'] != 'RedHat' %}
- file: /etc/init.d/apiserver - file: /etc/init.d/kube-apiserver
{% endif %} {% endif %}

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# #
### BEGIN INIT INFO ### BEGIN INIT INFO
# Provides: apiserver # Provides: kube-apiserver
# Required-Start: $local_fs $network $syslog # Required-Start: $local_fs $network $syslog
# Required-Stop: # Required-Stop:
# Default-Start: 2 3 4 5 # Default-Start: 2 3 4 5
@ -15,12 +15,12 @@
# PATH should only include /usr/* if it runs after the mountnfs.sh script # PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="The Kubernetes API server" DESC="The Kubernetes API server"
NAME=apiserver NAME=kube-apiserver
DAEMON=/usr/local/bin/apiserver DAEMON=/usr/local/bin/kube-apiserver
DAEMON_LOG_FILE=/var/log/$NAME.log DAEMON_LOG_FILE=/var/log/$NAME.log
PIDFILE=/var/run/$NAME.pid PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME SCRIPTNAME=/etc/init.d/$NAME
DAEMON_USER=apiserver DAEMON_USER=kube-apiserver
# Exit if the package is not installed # Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0 [ -x "$DAEMON" ] || exit 0

View File

@ -3,8 +3,8 @@ Description=Kubernetes API Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service] [Service]
EnvironmentFile=/etc/sysconfig/apiserver EnvironmentFile=/etc/sysconfig/kube-apiserver
ExecStart=/usr/local/bin/apiserver "$DAEMON_ARGS" ExecStart=/usr/local/bin/kube-apiserver "$DAEMON_ARGS"
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@ -1,60 +1,60 @@
{% if grains['os_family'] == 'RedHat' %} {% if grains['os_family'] == 'RedHat' %}
{% set environment_file = '/etc/sysconfig/controller-manager' %} {% set environment_file = '/etc/sysconfig/kube-controller-manager' %}
{% else %} {% else %}
{% set environment_file = '/etc/default/controller-manager' %} {% set environment_file = '/etc/default/kube-controller-manager' %}
{% endif %} {% endif %}
{{ environment_file }}: {{ environment_file }}:
file.managed: file.managed:
- source: salt://controller-manager/default - source: salt://kube-controller-manager/default
- template: jinja - template: jinja
- user: root - user: root
- group: root - group: root
- mode: 644 - mode: 644
/usr/local/bin/controller-manager: /usr/local/bin/kube-controller-manager:
file.managed: file.managed:
- source: salt://kube-bins/controller-manager - source: salt://kube-bins/kube-controller-manager
- user: root - user: root
- group: root - group: root
- mode: 755 - mode: 755
{% if grains['os_family'] == 'RedHat' %} {% if grains['os_family'] == 'RedHat' %}
/usr/lib/systemd/system/controller-manager.service: /usr/lib/systemd/system/kube-controller-manager.service:
file.managed: file.managed:
- source: salt://controller-manager/controller-manager.service - source: salt://kube-controller-manager/kube-controller-manager.service
- user: root - user: root
- group: root - group: root
{% else %} {% else %}
/etc/init.d/controller-manager: /etc/init.d/kube-controller-manager:
file.managed: file.managed:
- source: salt://controller-manager/initd - source: salt://kube-controller-manager/initd
- user: root - user: root
- group: root - group: root
- mode: 755 - mode: 755
{% endif %} {% endif %}
controller-manager: kube-controller-manager:
group.present: group.present:
- system: True - system: True
user.present: user.present:
- system: True - system: True
- gid_from_name: True - gid_from_name: True
- shell: /sbin/nologin - shell: /sbin/nologin
- home: /var/controller-manager - home: /var/kube-controller-manager
- require: - require:
- group: controller-manager - group: kube-controller-manager
service.running: service.running:
- enable: True - enable: True
- watch: - watch:
- file: /usr/local/bin/controller-manager - file: /usr/local/bin/kube-controller-manager
- file: {{ environment_file }} - file: {{ environment_file }}
{% if grains['os_family'] != 'RedHat' %} {% if grains['os_family'] != 'RedHat' %}
- file: /etc/init.d/controller-manager - file: /etc/init.d/kube-controller-manager
{% endif %} {% endif %}

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# #
### BEGIN INIT INFO ### BEGIN INIT INFO
# Provides: controller-manager # Provides: kube-controller-manager
# Required-Start: $local_fs $network $syslog # Required-Start: $local_fs $network $syslog
# Required-Stop: # Required-Stop:
# Default-Start: 2 3 4 5 # Default-Start: 2 3 4 5
@ -16,13 +16,13 @@
# PATH should only include /usr/* if it runs after the mountnfs.sh script # PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="The Kubernetes container manager" DESC="The Kubernetes container manager"
NAME=controller-manager NAME=kube-controller-manager
DAEMON=/usr/local/bin/controller-manager DAEMON=/usr/local/bin/kube-controller-manager
DAEMON_ARGS="" DAEMON_ARGS=""
DAEMON_LOG_FILE=/var/log/$NAME.log DAEMON_LOG_FILE=/var/log/$NAME.log
PIDFILE=/var/run/$NAME.pid PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME SCRIPTNAME=/etc/init.d/$NAME
DAEMON_USER=controller-manager DAEMON_USER=kube-controller-manager
# Exit if the package is not installed # Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0 [ -x "$DAEMON" ] || exit 0

View File

@ -5,7 +5,7 @@ Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service] [Service]
Type=simple Type=simple
EnvironmentFile=-/etc/sysconfig/controller-manager EnvironmentFile=-/etc/sysconfig/controller-manager
ExecStart=/usr/local/bin/controller-manager "$DAEMON_ARGS" ExecStart=/usr/local/bin/kube-controller-manager "$DAEMON_ARGS"
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@ -6,7 +6,7 @@
/usr/local/bin/kube-proxy: /usr/local/bin/kube-proxy:
file.managed: file.managed:
- source: salt://kube-bins/proxy - source: salt://kube-bins/kube-proxy
- user: root - user: root
- group: root - group: root
- mode: 755 - mode: 755

View File

@ -1,60 +1,60 @@
{% if grains['os_family'] == 'RedHat' %} {% if grains['os_family'] == 'RedHat' %}
{% set environment_file = '/etc/sysconfig/scheduler' %} {% set environment_file = '/etc/sysconfig/kube-scheduler' %}
{% else %} {% else %}
{% set environment_file = '/etc/default/scheduler' %} {% set environment_file = '/etc/default/kube-scheduler' %}
{% endif %} {% endif %}
{{ environment_file }}: {{ environment_file }}:
file.managed: file.managed:
- source: salt://scheduler/default - source: salt://kube-scheduler/default
- template: jinja - template: jinja
- user: root - user: root
- group: root - group: root
- mode: 644 - mode: 644
/usr/local/bin/scheduler: /usr/local/bin/kube-scheduler:
file.managed: file.managed:
- source: salt://kube-bins/scheduler - source: salt://kube-bins/kube-scheduler
- user: root - user: root
- group: root - group: root
- mode: 755 - mode: 755
{% if grains['os_family'] == 'RedHat' %} {% if grains['os_family'] == 'RedHat' %}
/usr/lib/systemd/system/scheduler.service: /usr/lib/systemd/system/kube-scheduler.service:
file.managed: file.managed:
- source: salt://scheduler/scheduler.service - source: salt://kube-scheduler/kube-scheduler.service
- user: root - user: root
- group: root - group: root
{% else %} {% else %}
/etc/init.d/scheduler: /etc/init.d/kube-scheduler:
file.managed: file.managed:
- source: salt://scheduler/initd - source: salt://kube-scheduler/initd
- user: root - user: root
- group: root - group: root
- mode: 755 - mode: 755
{% endif %} {% endif %}
scheduler: kube-scheduler:
group.present: group.present:
- system: True - system: True
user.present: user.present:
- system: True - system: True
- gid_from_name: True - gid_from_name: True
- shell: /sbin/nologin - shell: /sbin/nologin
- home: /var/scheduler - home: /var/kube-scheduler
- require: - require:
- group: scheduler - group: kube-scheduler
service.running: service.running:
- enable: True - enable: True
- watch: - watch:
- file: /usr/local/bin/scheduler - file: /usr/local/bin/kube-scheduler
- file: {{ environment_file }} - file: {{ environment_file }}
{% if grains['os_family'] != 'RedHat' %} {% if grains['os_family'] != 'RedHat' %}
- file: /etc/init.d/scheduler - file: /etc/init.d/kube-scheduler
{% endif %} {% endif %}

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# #
### BEGIN INIT INFO ### BEGIN INIT INFO
# Provides: scheduler # Provides: kube-scheduler
# Required-Start: $local_fs $network $syslog # Required-Start: $local_fs $network $syslog
# Required-Stop: # Required-Stop:
# Default-Start: 2 3 4 5 # Default-Start: 2 3 4 5
@ -16,13 +16,13 @@
# PATH should only include /usr/* if it runs after the mountnfs.sh script # PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="The Kubernetes scheduler plugin" DESC="The Kubernetes scheduler plugin"
NAME=scheduler NAME=kube-scheduler
DAEMON=/usr/local/bin/scheduler DAEMON=/usr/local/bin/kube-scheduler
DAEMON_ARGS=" --master=127.0.0.1:8080" DAEMON_ARGS=" --master=127.0.0.1:8080"
DAEMON_LOG_FILE=/var/log/$NAME.log DAEMON_LOG_FILE=/var/log/$NAME.log
PIDFILE=/var/run/$NAME.pid PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME SCRIPTNAME=/etc/init.d/$NAME
DAEMON_USER=scheduler DAEMON_USER=kube-scheduler
# Exit if the package is not installed # Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0 [ -x "$DAEMON" ] || exit 0

View File

@ -2,7 +2,7 @@ logrotate:
pkg: pkg:
- installed - installed
{% set logrotate_files = ['scheduler', 'kube-proxy', 'kubelet', 'apiserver', 'controller-manager'] %} {% set logrotate_files = ['kube-scheduler', 'kube-proxy', 'kubelet', 'kube-apiserver', 'kube-controller-manager'] %}
{% for file in logrotate_files %} {% for file in logrotate_files %}
/etc/logrotate.d/{{ file }}: /etc/logrotate.d/{{ file }}:
file: file:

View File

@ -28,9 +28,9 @@ base:
- match: grain - match: grain
- generate-cert - generate-cert
- etcd - etcd
- apiserver - kube-apiserver
- controller-manager - kube-controller-manager
- scheduler - kube-scheduler
- nginx - nginx
- kube-client-tools - kube-client-tools
- logrotate - logrotate

View File

@ -74,7 +74,7 @@ EOF
# verify master has all required daemons # verify master has all required daemons
echo "Validating master" echo "Validating master"
local machine="master" local machine="master"
local -a required_daemon=("salt-master" "salt-minion" "apiserver" "nginx" "controller-manager" "scheduler") local -a required_daemon=("salt-master" "salt-minion" "kube-apiserver" "nginx" "kube-controller-manager" "kube-scheduler")
local validated="1" local validated="1"
until [[ "$validated" == "0" ]]; do until [[ "$validated" == "0" ]]; do
validated="0" validated="0"

View File

@ -12,7 +12,7 @@
# . kubecfg # . kubecfg
# #
# Note: # Note:
# Currently, the completions will not work if the apiserver daemon is not # Currently, the completions will not work if the kube-apiserver daemon is not
# running on localhost on the standard port 8080 # running on localhost on the standard port 8080
__contains_word () { __contains_word () {

View File

@ -12,7 +12,7 @@
# . kubectl # . kubectl
# #
# Note: # Note:
# Currently, the completions will not work if the apiserver daemon is not # Currently, the completions will not work if the kube-apiserver daemon is not
# running on localhost on the standard port 8080 # running on localhost on the standard port 8080
__contains_word() __contains_word()

View File

@ -6,7 +6,7 @@ other via 127.0.0.1.
They require that etcd be available at 127.0.0.1:4001. They require that etcd be available at 127.0.0.1:4001.
Daemons may have multiple config files. An example is that the scheduler will pull in 'config', 'apiserver', and 'scheduler'. In that order. Each file may overwrite the values of the previous file. The 'config' file is sourced by all daemons. The apiserver config file is sourced by those daemons which must know how to reach the apiserver. Each daemon has its own config file for configuration specific to that daemon. Daemons may have multiple config files. An example is that the scheduler will pull in 'config', 'apiserver', and 'scheduler'. In that order. Each file may overwrite the values of the previous file. The 'config' file is sourced by all daemons. The kube-apiserver config file is sourced by those daemons which must know how to reach the kube-apiserver. Each daemon has its own config file for configuration specific to that daemon.
Commenting out all values or removing all environment files will launch the daemons with no command line options. Commenting out all values or removing all environment files will launch the daemons with no command line options.
@ -14,11 +14,9 @@ Assumptions of the service files
-------------------------------- --------------------------------
1. All binaries live in /usr/bin. 1. All binaries live in /usr/bin.
2. All binaries (except kubelet) are prefixed with kube- 2. There is a user named 'kube' on the system.
* Ex. the apiserver binary should be /usr/bin/kube-apiserver * kube-apiserver, kube-controller-manager, and kube-scheduler are run as kube, not root
3. There is a user named 'kube' on the system. 3. Configuration is done in via environment files in /etc/kubernetes/
* apiserver, controller-manager, and scheduler are run as kube, not root
4. Configuration is done in via environment files in /etc/kubernetes/
Non kubernetes defaults in the environment files Non kubernetes defaults in the environment files
------------------------------------------------ ------------------------------------------------
@ -31,6 +29,6 @@ Notes
----- -----
It may seem reasonable to use --option=${OPTION} in the .service file instead of only putting the command line option in the environment file. However this results in the possiblity of daemons being called with --option= if the environment file does not define a value. Whereas including the --option string inside the environment file means that nothing will be passed to the daemon. So the daemon default will be used for things unset by the environment files. It may seem reasonable to use --option=${OPTION} in the .service file instead of only putting the command line option in the environment file. However this results in the possiblity of daemons being called with --option= if the environment file does not define a value. Whereas including the --option string inside the environment file means that nothing will be passed to the daemon. So the daemon default will be used for things unset by the environment files.
While some command line options to the daemons use the default when passed an empty option some cause the daemon to fail to launch. --allow_privileged= (without a value of true/false) will cause the apiserver and kubelet to refuse to launch. While some command line options to the daemons use the default when passed an empty option some cause the daemon to fail to launch. --allow_privileged= (without a value of true/false) will cause the kube-apiserver and kubelet to refuse to launch.
It also may seem reasonable to just use ${DAEMON_ARGS} and string all of these into one line in the environment file. While that makes the .service file simple it makes the admin job more difficult to locate and make appropriate changes to the config. This is a tradeoff between having to update the .service file to add new options or having the config files easy for an admin to work with. I choose: "easy for adminmost of the time". It also may seem reasonable to just use ${DAEMON_ARGS} and string all of these into one line in the environment file. While that makes the .service file simple it makes the admin job more difficult to locate and make appropriate changes to the config. This is a tradeoff between having to update the .service file to add new options or having the config files easy for an admin to work with. I choose: "easy for adminmost of the time".

View File

@ -1,7 +1,7 @@
### ###
# kubernetes system config # kubernetes system config
# #
# The following values are used to configure the kubernetes-apiserver # The following values are used to configure the kube-apiserver
# #
# The address on the local server to listen to. # The address on the local server to listen to.
@ -10,7 +10,7 @@ KUBE_API_ADDRESS="--address=127.0.0.1"
# The port on the local server to listen on. # The port on the local server to listen on.
KUBE_API_PORT="--port=8080" KUBE_API_PORT="--port=8080"
# How the replication controller and scheduler find the apiserver # How the replication controller and scheduler find the kube-apiserver
KUBE_MASTER="--master=127.0.0.1:8080" KUBE_MASTER="--master=127.0.0.1:8080"
# Port minions listen on # Port minions listen on

View File

@ -4,11 +4,11 @@
# The following values are used to configure various aspects of all # The following values are used to configure various aspects of all
# kubernetes services, including # kubernetes services, including
# #
# kubernetes-apiserver.service # kube-apiserver.service
# kubernetes-controller-manager.service # kube-controller-manager.service
# kubernetes-scheduler.service # kube-scheduler.service
# kubelet.service # kubelet.service
# kubernetes-proxy.service # kube-proxy.service
# Comma seperated list of nodes in the etcd cluster # Comma seperated list of nodes in the etcd cluster
KUBE_ETCD_SERVERS="--etcd_servers=http://127.0.0.1:4001" KUBE_ETCD_SERVERS="--etcd_servers=http://127.0.0.1:4001"

View File

@ -20,10 +20,10 @@ First, create your kube-apiserver.service file (change necessary variables)
[Service] [Service]
EnvironmentFile=/etc/network-environment EnvironmentFile=/etc/network-environment
ExecStartPre=/usr/bin/rm /opt/bin/apiserver ExecStartPre=/usr/bin/rm /opt/bin/kube-apiserver
ExecStartPre=/usr/bin/wget -P /opt/bin https://path/to/apiserver/binary ExecStartPre=/usr/bin/wget -P /opt/bin https://path/to/kube-apiserver/binary
ExecStartPre=/usr/bin/chmod +x /opt/bin/apiserver ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-apiserver
ExecStart=/opt/bin/apiserver \ ExecStart=/opt/bin/kube-apiserver \
-address=0.0.0.0 \ -address=0.0.0.0 \
-port=8080 \ -port=8080 \
-etcd_servers=http://10.1.10.10:4001 -etcd_servers=http://10.1.10.10:4001

View File

@ -44,9 +44,9 @@ coreos:
After=etcd.service After=etcd.service
[Service] [Service]
ExecStartPre=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/k8s/apiserver ExecStartPre=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/k8s/kube-apiserver
ExecStartPre=/usr/bin/chmod +x /opt/bin/apiserver ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-apiserver
ExecStart=/opt/bin/apiserver \ ExecStart=/opt/bin/kube-apiserver \
--address=0.0.0.0 \ --address=0.0.0.0 \
--port=8080 \ --port=8080 \
--etcd_servers=http://127.0.0.1:4001 \ --etcd_servers=http://127.0.0.1:4001 \
@ -63,9 +63,9 @@ coreos:
After=kube-apiserver.service After=kube-apiserver.service
[Service] [Service]
ExecStartPre=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/k8s/controller-manager ExecStartPre=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/k8s/kube-controller-manager
ExecStartPre=/usr/bin/chmod +x /opt/bin/controller-manager ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-controller-manager
ExecStart=/opt/bin/controller-manager \ ExecStart=/opt/bin/kube-controller-manager \
--master=127.0.0.1:8080 \ --master=127.0.0.1:8080 \
--logtostderr=true --logtostderr=true
Restart=always Restart=always
@ -80,9 +80,9 @@ coreos:
After=kube-apiserver.service After=kube-apiserver.service
[Service] [Service]
ExecStartPre=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/k8s/scheduler ExecStartPre=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/k8s/kube-scheduler
ExecStartPre=/usr/bin/chmod +x /opt/bin/scheduler ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-scheduler
ExecStart=/opt/bin/scheduler --master=127.0.0.1:8080 ExecStart=/opt/bin/kube-scheduler --master=127.0.0.1:8080
Restart=always Restart=always
RestartSec=10 RestartSec=10
- name: kube-register.service - name: kube-register.service

View File

@ -155,9 +155,9 @@
" Requires=etcd.service\n", " Requires=etcd.service\n",
" After=etcd.service\n\n", " After=etcd.service\n\n",
" [Service]\n", " [Service]\n",
" ExecStartPre=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/k8s/apiserver\n", " ExecStartPre=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/k8s/kube-apiserver\n",
" ExecStartPre=/usr/bin/chmod +x /opt/bin/apiserver\n", " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-apiserver\n",
" ExecStart=/opt/bin/apiserver \\\n", " ExecStart=/opt/bin/kube-apiserver \\\n",
" --address=0.0.0.0 \\\n", " --address=0.0.0.0 \\\n",
" --port=8080 \\\n", " --port=8080 \\\n",
" --etcd_servers=http://127.0.0.1:4001 \\\n", " --etcd_servers=http://127.0.0.1:4001 \\\n",
@ -173,9 +173,9 @@
" Requires=kube-apiserver.service\n", " Requires=kube-apiserver.service\n",
" After=kube-apiserver.service\n\n", " After=kube-apiserver.service\n\n",
" [Service]\n", " [Service]\n",
" ExecStartPre=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/k8s/controller-manager\n", " ExecStartPre=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/k8s/kube-controller-manager\n",
" ExecStartPre=/usr/bin/chmod +x /opt/bin/controller-manager\n", " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-controller-manager\n",
" ExecStart=/opt/bin/controller-manager \\\n", " ExecStart=/opt/bin/kube-controller-manager \\\n",
" --master=127.0.0.1:8080 \\\n", " --master=127.0.0.1:8080 \\\n",
" --logtostderr=true\n", " --logtostderr=true\n",
" Restart=always\n", " Restart=always\n",
@ -189,9 +189,9 @@
" Requires=kube-apiserver.service\n", " Requires=kube-apiserver.service\n",
" After=kube-apiserver.service\n\n", " After=kube-apiserver.service\n\n",
" [Service]\n", " [Service]\n",
" ExecStartPre=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/k8s/scheduler\n", " ExecStartPre=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/k8s/kube-scheduler\n",
" ExecStartPre=/usr/bin/chmod +x /opt/bin/scheduler\n", " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-scheduler\n",
" ExecStart=/opt/bin/scheduler --master=127.0.0.1:8080\n", " ExecStart=/opt/bin/kube-scheduler --master=127.0.0.1:8080\n",
" Restart=always\n", " Restart=always\n",
" RestartSec=10\n", " RestartSec=10\n",
" - name: kube-proxy.service\n", " - name: kube-proxy.service\n",

View File

@ -79,43 +79,44 @@ coreos:
content: | content: |
[Unit] [Unit]
After=network-online.target After=network-online.target
Before=apiserver.service Before=kube-apiserver.service
Before=controller-manager.service Before=kube-controller-manager.service
Before=kubelet.service Before=kubelet.service
Before=proxy.service Before=kube-proxy.service
Before=kube-scheduler.service
Description=Download Kubernetes Binaries Description=Download Kubernetes Binaries
Documentation=https://github.com/GoogleCloudPlatform/kubernetes Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Requires=network-online.target Requires=network-online.target
[Service] [Service]
ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/apiserver ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kube-apiserver
ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/controller-manager ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kube-controller-manager
ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kubecfg ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kubecfg
ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kubelet ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kubelet
ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/proxy ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kube-proxy
ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/scheduler ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kube-scheduler
ExecStart=/usr/bin/chmod +x /opt/bin/apiserver ExecStart=/usr/bin/chmod +x /opt/bin/kube-apiserver
ExecStart=/usr/bin/chmod +x /opt/bin/controller-manager ExecStart=/usr/bin/chmod +x /opt/bin/kube-controller-manager
ExecStart=/usr/bin/chmod +x /opt/bin/kubecfg ExecStart=/usr/bin/chmod +x /opt/bin/kubecfg
ExecStart=/usr/bin/chmod +x /opt/bin/kubelet ExecStart=/usr/bin/chmod +x /opt/bin/kubelet
ExecStart=/usr/bin/chmod +x /opt/bin/proxy ExecStart=/usr/bin/chmod +x /opt/bin/kube-proxy
ExecStart=/usr/bin/chmod +x /opt/bin/scheduler ExecStart=/usr/bin/chmod +x /opt/bin/kube-scheduler
RemainAfterExit=yes RemainAfterExit=yes
Type=oneshot Type=oneshot
- name: apiserver.service - name: kube-apiserver.service
command: start command: start
content: | content: |
[Unit] [Unit]
After=etcd.service After=etcd.service
After=download-kubernetes.service After=download-kubernetes.service
ConditionFileIsExecutable=/opt/bin/apiserver ConditionFileIsExecutable=/opt/bin/kube-apiserver
Description=Kubernetes API Server Description=Kubernetes API Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Wants=etcd.service Wants=etcd.service
Wants=download-kubernetes.service Wants=download-kubernetes.service
[Service] [Service]
ExecStart=/opt/bin/apiserver \ ExecStart=/opt/bin/kube-apiserver \
--address=127.0.0.1 \ --address=127.0.0.1 \
--port=8080 \ --port=8080 \
--etcd_servers=http://127.0.0.1:4001 \ --etcd_servers=http://127.0.0.1:4001 \
@ -125,19 +126,19 @@ coreos:
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
- name: scheduler.service - name: kube-scheduler.service
command: start command: start
content: | content: |
[Unit] [Unit]
After=apiserver.service After=kube-apiserver.service
After=download-kubernetes.service After=download-kubernetes.service
ConditionFileIsExecutable=/opt/bin/scheduler ConditionFileIsExecutable=/opt/bin/kube-scheduler
Description=Kubernetes Scheduler Description=Kubernetes Scheduler
Documentation=https://github.com/GoogleCloudPlatform/kubernetes Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Wants=apiserver.service Wants=kube-apiserver.service
[Service] [Service]
ExecStart=/opt/bin/scheduler \ ExecStart=/opt/bin/kube-scheduler \
--logtostderr=true \ --logtostderr=true \
--master=127.0.0.1:8080 --master=127.0.0.1:8080
Restart=always Restart=always
@ -145,20 +146,20 @@ coreos:
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
- name: controller-manager.service - name: kube-controller-manager.service
command: start command: start
content: | content: |
[Unit] [Unit]
After=etcd.service After=etcd.service
After=download-kubernetes.service After=download-kubernetes.service
ConditionFileIsExecutable=/opt/bin/controller-manager ConditionFileIsExecutable=/opt/bin/kube-controller-manager
Description=Kubernetes Controller Manager Description=Kubernetes Controller Manager
Documentation=https://github.com/GoogleCloudPlatform/kubernetes Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Wants=etcd.service Wants=etcd.service
Wants=download-kubernetes.service Wants=download-kubernetes.service
[Service] [Service]
ExecStart=/opt/bin/controller-manager \ ExecStart=/opt/bin/kube-controller-manager \
--master=127.0.0.1:8080 \ --master=127.0.0.1:8080 \
--machines=192.168.12.10,192.168.12.11,192.168.12.12 \ --machines=192.168.12.10,192.168.12.11,192.168.12.12 \
--logtostderr=true --logtostderr=true
@ -191,20 +192,20 @@ coreos:
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
- name: proxy.service - name: kube-proxy.service
command: start command: start
content: | content: |
[Unit] [Unit]
After=etcd.service After=etcd.service
After=download-kubernetes.service After=download-kubernetes.service
ConditionFileIsExecutable=/opt/bin/proxy ConditionFileIsExecutable=/opt/bin/kube-proxy
Description=Kubernetes Proxy Description=Kubernetes Proxy
Documentation=https://github.com/GoogleCloudPlatform/kubernetes Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Wants=etcd.service Wants=etcd.service
Wants=download-kubernetes.service Wants=download-kubernetes.service
[Service] [Service]
ExecStart=/opt/bin/proxy --etcd_servers=http://127.0.0.1:4001 --logtostderr=true ExecStart=/opt/bin/kube-proxy --etcd_servers=http://127.0.0.1:4001 --logtostderr=true
Restart=always Restart=always
RestartSec=10 RestartSec=10

View File

@ -12,39 +12,40 @@ coreos:
content: | content: |
[Unit] [Unit]
After=network-online.target After=network-online.target
Before=apiserver.service Before=kube-apiserver.service
Before=controller-manager.service Before=kube-controller-manager.service
Before=kubelet.service Before=kubelet.service
Before=proxy.service Before=kube-proxy.service
Before=kube-scheduler.service
Description=Download Kubernetes Binaries Description=Download Kubernetes Binaries
Documentation=https://github.com/GoogleCloudPlatform/kubernetes Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Requires=network-online.target Requires=network-online.target
[Service] [Service]
ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/apiserver ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kube-apiserver
ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/controller-manager ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kube-controller-manager
ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kubecfg ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kubecfg
ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kubelet ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kubelet
ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/proxy ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kube-proxy
ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/scheduler ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kube-scheduler
ExecStart=/usr/bin/chmod +x /opt/bin/apiserver ExecStart=/usr/bin/chmod +x /opt/bin/kube-apiserver
ExecStart=/usr/bin/chmod +x /opt/bin/controller-manager ExecStart=/usr/bin/chmod +x /opt/bin/kube-controller-manager
ExecStart=/usr/bin/chmod +x /opt/bin/kubecfg ExecStart=/usr/bin/chmod +x /opt/bin/kubecfg
ExecStart=/usr/bin/chmod +x /opt/bin/kubelet ExecStart=/usr/bin/chmod +x /opt/bin/kubelet
ExecStart=/usr/bin/chmod +x /opt/bin/proxy ExecStart=/usr/bin/chmod +x /opt/bin/kube-proxy
ExecStart=/usr/bin/chmod +x /opt/bin/scheduler ExecStart=/usr/bin/chmod +x /opt/bin/kube-scheduler
RemainAfterExit=yes RemainAfterExit=yes
Type=oneshot Type=oneshot
- name: apiserver.service - name: kube-apiserver.service
command: start command: start
content: | content: |
[Unit] [Unit]
ConditionFileIsExecutable=/opt/bin/apiserver ConditionFileIsExecutable=/opt/bin/kube-apiserver
Description=Kubernetes API Server Description=Kubernetes API Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service] [Service]
ExecStart=/opt/bin/apiserver \ ExecStart=/opt/bin/kube-apiserver \
--address=127.0.0.1 \ --address=127.0.0.1 \
--port=8080 \ --port=8080 \
--etcd_servers=http://127.0.0.1:4001 \ --etcd_servers=http://127.0.0.1:4001 \
@ -54,19 +55,19 @@ coreos:
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
- name: scheduler.service - name: kube-scheduler.service
command: start command: start
content: | content: |
[Unit] [Unit]
After=apiserver.service After=kube-apiserver.service
After=download-kubernetes.service After=download-kubernetes.service
ConditionFileIsExecutable=/opt/bin/scheduler ConditionFileIsExecutable=/opt/bin/kube-scheduler
Description=Kubernetes Scheduler Description=Kubernetes Scheduler
Documentation=https://github.com/GoogleCloudPlatform/kubernetes Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Wants=apiserver.service Wants=kube-apiserver.service
[Service] [Service]
ExecStart=/opt/bin/scheduler \ ExecStart=/opt/bin/kube-scheduler \
--logtostderr=true \ --logtostderr=true \
--master=127.0.0.1:8080 --master=127.0.0.1:8080
Restart=always Restart=always
@ -74,16 +75,16 @@ coreos:
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
- name: controller-manager.service - name: kube-controller-manager.service
command: start command: start
content: | content: |
[Unit] [Unit]
ConditionFileIsExecutable=/opt/bin/controller-manager ConditionFileIsExecutable=/opt/bin/kube-controller-manager
Description=Kubernetes Controller Manager Description=Kubernetes Controller Manager
Documentation=https://github.com/GoogleCloudPlatform/kubernetes Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service] [Service]
ExecStart=/opt/bin/controller-manager \ ExecStart=/opt/bin/kube-controller-manager \
--master=127.0.0.1:8080 \ --master=127.0.0.1:8080 \
--machines=127.0.0.1 \ --machines=127.0.0.1 \
--logtostderr=true --logtostderr=true
@ -112,16 +113,16 @@ coreos:
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
- name: proxy.service - name: kube-proxy.service
command: start command: start
content: | content: |
[Unit] [Unit]
ConditionFileIsExecutable=/opt/bin/proxy ConditionFileIsExecutable=/opt/bin/kube-proxy
Description=Kubernetes Proxy Description=Kubernetes Proxy
Documentation=https://github.com/GoogleCloudPlatform/kubernetes Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service] [Service]
ExecStart=/opt/bin/proxy --etcd_servers=http://127.0.0.1:4001 --logtostderr=true ExecStart=/opt/bin/kube-proxy --etcd_servers=http://127.0.0.1:4001 --logtostderr=true
Restart=on-failure Restart=on-failure
RestartSec=1 RestartSec=1

View File

@ -22,11 +22,11 @@ sudo cp kubernetes/docs/getting-started-guides/coreos/units/* /etc/systemd/syste
### Start the Kubernetes services ### Start the Kubernetes services
``` ```
sudo systemctl start apiserver sudo systemctl start kube-apiserver
sudo systemctl start scheduler sudo systemctl start kube-scheduler
sudo systemctl start controller-manager sudo systemctl start kube-controller-manager
sudo systemctl start kubelet sudo systemctl start kubelet
sudo systemctl start proxy sudo systemctl start kube-proxy
``` ```
### Running commands remotely ### Running commands remotely

View File

@ -1,23 +1,23 @@
[Unit] [Unit]
After=network-online.target After=network-online.target
Before=apiserver.service Before=kube-apiserver.service
Before=controller-manager.service Before=kube-controller-manager.service
Before=kubelet.service Before=kubelet.service
Before=proxy.service Before=kube-proxy.service
Description=Download Kubernetes Binaries Description=Download Kubernetes Binaries
Documentation=https://github.com/GoogleCloudPlatform/kubernetes Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Requires=network-online.target Requires=network-online.target
[Service] [Service]
ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/apiserver ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kube-apiserver
ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/controller-manager ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kube-controller-manager
ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kubecfg ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kubecfg
ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kubelet ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kubelet
ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/proxy ExecStart=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/kubernetes/kube-proxy
ExecStart=/usr/bin/chmod +x /opt/bin/apiserver ExecStart=/usr/bin/chmod +x /opt/bin/kube-apiserver
ExecStart=/usr/bin/chmod +x /opt/bin/controller-manager ExecStart=/usr/bin/chmod +x /opt/bin/kube-controller-manager
ExecStart=/usr/bin/chmod +x /opt/bin/kubecfg ExecStart=/usr/bin/chmod +x /opt/bin/kubecfg
ExecStart=/usr/bin/chmod +x /opt/bin/kubelet ExecStart=/usr/bin/chmod +x /opt/bin/kubelet
ExecStart=/usr/bin/chmod +x /opt/bin/proxy ExecStart=/usr/bin/chmod +x /opt/bin/kube-proxy
RemainAfterExit=yes RemainAfterExit=yes
Type=oneshot Type=oneshot

View File

@ -1,10 +1,10 @@
[Unit] [Unit]
ConditionFileIsExecutable=/opt/bin/apiserver ConditionFileIsExecutable=/opt/bin/kube-apiserver
Description=Kubernetes API Server Description=Kubernetes API Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service] [Service]
ExecStart=/opt/bin/apiserver \ ExecStart=/opt/bin/kube-apiserver \
--address=127.0.0.1 \ --address=127.0.0.1 \
--port=8080 \ --port=8080 \
--etcd_servers=http://127.0.0.1:4001 \ --etcd_servers=http://127.0.0.1:4001 \

View File

@ -1,10 +1,10 @@
[Unit] [Unit]
ConditionFileIsExecutable=/opt/bin/controller-manager ConditionFileIsExecutable=/opt/bin/kube-controller-manager
Description=Kubernetes Controller Manager Description=Kubernetes Controller Manager
Documentation=https://github.com/GoogleCloudPlatform/kubernetes Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service] [Service]
ExecStart=/opt/bin/controller-manager \ ExecStart=/opt/bin/kube-controller-manager \
--master=127.0.0.1:8080 \ --master=127.0.0.1:8080 \
--machines=127.0.0.1 \ --machines=127.0.0.1 \
--etcd_servers=http://127.0.0.1:4001 \ --etcd_servers=http://127.0.0.1:4001 \

View File

@ -1,10 +1,10 @@
[Unit] [Unit]
ConditionFileIsExecutable=/opt/bin/proxy ConditionFileIsExecutable=/opt/bin/kube-proxy
Description=Kubernetes Proxy Description=Kubernetes Proxy
Documentation=https://github.com/GoogleCloudPlatform/kubernetes Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service] [Service]
ExecStart=/opt/bin/proxy --etcd_servers=http://127.0.0.1:4001 --logtostderr=true ExecStart=/opt/bin/kube-proxy --etcd_servers=http://127.0.0.1:4001 --logtostderr=true
Restart=on-failure Restart=on-failure
RestartSec=1 RestartSec=1

View File

@ -1,12 +1,12 @@
[Unit] [Unit]
After=apiserver.service After=kube-apiserver.service
ConditionFileIsExecutable=/opt/bin/scheduler ConditionFileIsExecutable=/opt/bin/kube-scheduler
Description=Kubernetes Scheduler Description=Kubernetes Scheduler
Documentation=https://github.com/GoogleCloudPlatform/kubernetes Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Wants=apiserver.service Wants=kube-apiserver.service
[Service] [Service]
ExecStart=/opt/bin/scheduler \ ExecStart=/opt/bin/kube-scheduler \
--logtostderr=true \ --logtostderr=true \
--master=127.0.0.1:8080 --master=127.0.0.1:8080
Restart=always Restart=always

View File

@ -10,7 +10,7 @@ The guide is broken into 3 sections:
2. Configuring the two hosts, a master and a minion. 2. Configuring the two hosts, a master and a minion.
3. Basic functionality test. 3. Basic functionality test.
The kubernetes package provides a few services: apiserver, scheduler, controller, kubelet, proxy. These services are managed by systemd and the configuration resides in a central location: /etc/kubernetes. We will break the services up between the hosts. The first host, fed-master, will be the kubernetes master. This host will run the apiserver, controller, and scheduler. In addition, the master will also run _etcd_. The remaining host, fed-minion will be the minion and run kubelet, proxy, cadvisor and docker. The kubernetes package provides a few services: kube-apiserver, kube-scheduler, kube-controller-manager, kubelet, kube-proxy. These services are managed by systemd and the configuration resides in a central location: /etc/kubernetes. We will break the services up between the hosts. The first host, fed-master, will be the kubernetes master. This host will run the kube-apiserver, kube-controller-manager, and kube-scheduler. In addition, the master will also run _etcd_. The remaining host, fed-minion will be the minion and run kubelet, proxy, cadvisor and docker.
**System Information:** **System Information:**
@ -54,11 +54,11 @@ echo "192.168.121.9 fed-master
# The following values are used to configure various aspects of all # The following values are used to configure various aspects of all
# kubernetes services, including # kubernetes services, including
# #
# kubernetes-apiserver.service # kube-apiserver.service
# kubernetes-controller-manager.service # kube-controller-manager.service
# kubernetes-scheduler.service # kube-scheduler.service
# kubelet.service # kubelet.service
# kubernetes-proxy.service # kube-proxy.service
# Comma seperated list of nodes in the etcd cluster # Comma seperated list of nodes in the etcd cluster
KUBE_ETCD_SERVERS="--etcd_servers=http://fed-master:4001" KUBE_ETCD_SERVERS="--etcd_servers=http://fed-master:4001"
@ -82,7 +82,7 @@ systemctl stop iptables-services firewalld
**Configure the kubernetes services on the master.** **Configure the kubernetes services on the master.**
***For this you need to configure the apiserver. The apiserver, controller-manager, and scheduler along with the etcd, will need to be started*** ***For this you need to configure the kube-apiserver. The kube-apiserver, kube-controller-manager, and kube-scheduler along with the etcd, will need to be started***
* Edit /etc/kubernetes/apiserver to appear as such: * Edit /etc/kubernetes/apiserver to appear as such:
@ -90,7 +90,7 @@ systemctl stop iptables-services firewalld
### ###
# kubernetes system config # kubernetes system config
# #
# The following values are used to configure the kubernetes-apiserver # The following values are used to configure the kube-apiserver
# #
# The address on the local server to listen to. # The address on the local server to listen to.
@ -99,7 +99,7 @@ KUBE_API_ADDRESS="--address=0.0.0.0"
# The port on the local server to listen on. # The port on the local server to listen on.
KUBE_API_PORT="--port=8080" KUBE_API_PORT="--port=8080"
# How the replication controller and scheduler find the apiserver # How the replication controller and scheduler find the kube-apiserver
KUBE_MASTER="--master=fed-master:8080" KUBE_MASTER="--master=fed-master:8080"
# Port minions listen on # Port minions listen on
@ -117,7 +117,7 @@ KUBE_API_ARGS=""
### ###
# kubernetes system config # kubernetes system config
# #
# The following values are used to configure the kubernetes-controller-manager # The following values are used to configure the kube-controller-manager
# #
# Comma seperated list of minions # Comma seperated list of minions
@ -149,7 +149,7 @@ curl -s -L http://fed-master:4001/v2/keys/mykey | python -mjson.tool
curl -s -L http://fed-master:4001/v2/keys/mykey -XDELETE | python -mjson.tool curl -s -L http://fed-master:4001/v2/keys/mykey -XDELETE | python -mjson.tool
``` ```
* Poke the apiserver just a bit * Poke the kube-apiserver just a bit
``` ```
curl -s -L http://fed-master:8080/version | python -mjson.tool curl -s -L http://fed-master:8080/version | python -mjson.tool
curl -s -L http://fed-master:8080/api/v1beta1/pods | python -mjson.tool curl -s -L http://fed-master:8080/api/v1beta1/pods | python -mjson.tool

View File

@ -31,11 +31,11 @@ vagrant ssh minion-3
To view the service status and/or logs on the kubernetes-master: To view the service status and/or logs on the kubernetes-master:
``` ```
vagrant ssh master vagrant ssh master
[vagrant@kubernetes-master ~] $ sudo systemctl status apiserver [vagrant@kubernetes-master ~] $ sudo systemctl status kube-apiserver
[vagrant@kubernetes-master ~] $ sudo journalctl -r -u apiserver [vagrant@kubernetes-master ~] $ sudo journalctl -r -u kube-apiserver
[vagrant@kubernetes-master ~] $ sudo systemctl status controller-manager [vagrant@kubernetes-master ~] $ sudo systemctl status kube-controller-manager
[vagrant@kubernetes-master ~] $ sudo journalctl -r -u controller-manager [vagrant@kubernetes-master ~] $ sudo journalctl -r -u kube-controller-manager
[vagrant@kubernetes-master ~] $ sudo systemctl status etcd [vagrant@kubernetes-master ~] $ sudo systemctl status etcd
[vagrant@kubernetes-master ~] $ sudo systemctl status nginx [vagrant@kubernetes-master ~] $ sudo systemctl status nginx

View File

@ -54,9 +54,9 @@ Key | Value
`cbr-cidr` | (Optional) The minion IP address range used for the docker container bridge. `cbr-cidr` | (Optional) The minion IP address range used for the docker container bridge.
`cloud` | (Optional) Which IaaS platform is used to host kubernetes, *gce*, *azure*, *aws*, *vagrant* `cloud` | (Optional) Which IaaS platform is used to host kubernetes, *gce*, *azure*, *aws*, *vagrant*
`cloud_provider` | (Optional) The cloud_provider used by apiserver: *gce*, *azure*, *vagrant* `cloud_provider` | (Optional) The cloud_provider used by apiserver: *gce*, *azure*, *vagrant*
`etcd_servers` | (Optional) Comma-delimited list of IP addresses the apiserver and kubelet use to reach etcd. Uses the IP of the first machine in the kubernetes_master role. `etcd_servers` | (Optional) Comma-delimited list of IP addresses the kube-apiserver and kubelet use to reach etcd. Uses the IP of the first machine in the kubernetes_master role.
`hostnamef` | (Optional) The full host name of the machine, i.e. hostname -f `hostnamef` | (Optional) The full host name of the machine, i.e. hostname -f
`master_ip` | (Optional) The IP address that the apiserver will bind against `master_ip` | (Optional) The IP address that the kube-apiserver will bind against
`node_ip` | (Optional) The IP address to use to address this node `node_ip` | (Optional) The IP address to use to address this node
`minion_ip` | (Optional) Mapped to the kubelet hostname_override, K8S TODO - change this name `minion_ip` | (Optional) Mapped to the kubelet hostname_override, K8S TODO - change this name
`network_mode` | (Optional) Networking model to use among nodes: *openvswitch* `network_mode` | (Optional) Networking model to use among nodes: *openvswitch*

View File

@ -299,7 +299,7 @@ verify_from_container "${svc3_name}" "${svc3_ip}" "${svc3_port}" \
# Test 6: Restart the master, make sure portals come back. # Test 6: Restart the master, make sure portals come back.
# #
echo "Restarting the master" echo "Restarting the master"
ssh-to-node "${master}" "sudo /etc/init.d/apiserver restart" ssh-to-node "${master}" "sudo /etc/init.d/kube-apiserver restart"
sleep 5 sleep 5
echo "Verifying the portals from the host" echo "Verifying the portals from the host"
wait_for_service_up "${svc3_name}" "${svc3_ip}" "${svc3_port}" \ wait_for_service_up "${svc3_name}" "${svc3_ip}" "${svc3_port}" \

View File

@ -20,11 +20,11 @@ readonly KUBE_GOPATH="${KUBE_OUTPUT}/go"
# The set of server targets that we are only building for Linux # The set of server targets that we are only building for Linux
readonly KUBE_SERVER_TARGETS=( readonly KUBE_SERVER_TARGETS=(
cmd/proxy cmd/kube-proxy
cmd/apiserver cmd/kube-apiserver
cmd/controller-manager cmd/kube-controller-manager
cmd/kubelet cmd/kubelet
plugin/cmd/scheduler plugin/cmd/kube-scheduler
) )
readonly KUBE_SERVER_BINARIES=("${KUBE_SERVER_TARGETS[@]##*/}") readonly KUBE_SERVER_BINARIES=("${KUBE_SERVER_TARGETS[@]##*/}")

View File

@ -84,8 +84,8 @@ esac
GO_OUT="${KUBE_ROOT}/_output/local/bin/${host_os}/${host_arch}" GO_OUT="${KUBE_ROOT}/_output/local/bin/${host_os}/${host_arch}"
APISERVER_LOG=/tmp/apiserver.log APISERVER_LOG=/tmp/kube-apiserver.log
"${GO_OUT}/apiserver" \ "${GO_OUT}/kube-apiserver" \
-v=${LOG_LEVEL} \ -v=${LOG_LEVEL} \
--address="${API_HOST}" \ --address="${API_HOST}" \
--port="${API_PORT}" \ --port="${API_PORT}" \
@ -94,11 +94,11 @@ APISERVER_LOG=/tmp/apiserver.log
--cors_allowed_origins="${API_CORS_ALLOWED_ORIGINS}" >"${APISERVER_LOG}" 2>&1 & --cors_allowed_origins="${API_CORS_ALLOWED_ORIGINS}" >"${APISERVER_LOG}" 2>&1 &
APISERVER_PID=$! APISERVER_PID=$!
# Wait for apiserver to come up before launching the rest of the components. # Wait for kube-apiserver to come up before launching the rest of the components.
kube::util::wait_for_url "http://${API_HOST}:${API_PORT}/api/v1beta1/pods" "apiserver: " kube::util::wait_for_url "http://${API_HOST}:${API_PORT}/api/v1beta1/pods" "apiserver: "
CTLRMGR_LOG=/tmp/controller-manager.log CTLRMGR_LOG=/tmp/kube-controller-manager.log
"${GO_OUT}/controller-manager" \ "${GO_OUT}/kube-controller-manager" \
-v=${LOG_LEVEL} \ -v=${LOG_LEVEL} \
--machines="127.0.0.1" \ --machines="127.0.0.1" \
--master="${API_HOST}:${API_PORT}" >"${CTLRMGR_LOG}" 2>&1 & --master="${API_HOST}:${API_PORT}" >"${CTLRMGR_LOG}" 2>&1 &
@ -114,13 +114,13 @@ KUBELET_LOG=/tmp/kubelet.log
KUBELET_PID=$! KUBELET_PID=$!
PROXY_LOG=/tmp/kube-proxy.log PROXY_LOG=/tmp/kube-proxy.log
"${GO_OUT}/proxy" \ "${GO_OUT}/kube-proxy" \
-v=${LOG_LEVEL} \ -v=${LOG_LEVEL} \
--master="http://${API_HOST}:${API_PORT}" >"${PROXY_LOG}" 2>&1 & --master="http://${API_HOST}:${API_PORT}" >"${PROXY_LOG}" 2>&1 &
PROXY_PID=$! PROXY_PID=$!
SCHEDULER_LOG=/tmp/k8s-scheduler.log SCHEDULER_LOG=/tmp/kube-scheduler.log
"${GO_OUT}/scheduler" \ "${GO_OUT}/kube-scheduler" \
-v=${LOG_LEVEL} \ -v=${LOG_LEVEL} \
--master="http://${API_HOST}:${API_PORT}" >"${SCHEDULER_LOG}" 2>&1 & --master="http://${API_HOST}:${API_PORT}" >"${SCHEDULER_LOG}" 2>&1 &
SCHEDULER_PID=$! SCHEDULER_PID=$!

View File

@ -63,9 +63,9 @@ KUBELET_PID=$!
kube::util::wait_for_url "http://127.0.0.1:${KUBELET_PORT}/healthz" "kubelet: " kube::util::wait_for_url "http://127.0.0.1:${KUBELET_PORT}/healthz" "kubelet: "
# Start apiserver # Start kube-apiserver
kube::log::status "Starting apiserver" kube::log::status "Starting kube-apiserver"
"${KUBE_OUTPUT_HOSTBIN}/apiserver" \ "${KUBE_OUTPUT_HOSTBIN}/kube-apiserver" \
--address="127.0.0.1" \ --address="127.0.0.1" \
--public_address_override="127.0.0.1" \ --public_address_override="127.0.0.1" \
--port="${API_PORT}" \ --port="${API_PORT}" \
@ -88,7 +88,7 @@ kube_flags=(
# Start controller manager # Start controller manager
kube::log::status "Starting CONTROLLER-MANAGER" kube::log::status "Starting CONTROLLER-MANAGER"
"${KUBE_OUTPUT_HOSTBIN}/controller-manager" \ "${KUBE_OUTPUT_HOSTBIN}/kube-controller-manager" \
--machines="127.0.0.1" \ --machines="127.0.0.1" \
--master="127.0.0.1:${API_PORT}" 1>&2 & --master="127.0.0.1:${API_PORT}" 1>&2 &
CTLRMGR_PID=$! CTLRMGR_PID=$!
@ -130,6 +130,6 @@ kube::log::status "TEST PASSED"
# Start proxy # Start proxy
#PROXY_LOG=/tmp/kube-proxy.log #PROXY_LOG=/tmp/kube-proxy.log
#${KUBE_OUTPUT_HOSTBIN}/proxy \ #${KUBE_OUTPUT_HOSTBIN}/kube-proxy \
# --etcd_servers="http://127.0.0.1:${ETCD_PORT}" 1>&2 & # --etcd_servers="http://127.0.0.1:${ETCD_PORT}" 1>&2 &
#PROXY_PID=$! #PROXY_PID=$!