Merge "[K8s] Add units to make k8s working on debian"

This commit is contained in:
Jenkins 2016-07-19 15:54:17 +00:00 committed by Gerrit Code Review
commit 26a78f736b
27 changed files with 422 additions and 71 deletions

View File

@ -30,6 +30,7 @@ Scripts:
- init_conf/confd.conf
- haproxy.tmpl
- haproxy.toml
- systemd/confd.service
Options:
captureStdout: true

View File

@ -36,6 +36,12 @@ Scripts:
- default_scripts/kube-apiserver
- default_scripts/kube-scheduler
- default_scripts/kube-controller-manager
- environ/apiserver
- environ/kube-config
- systemd/kube-apiserver.service
- systemd/kube-scheduler.service
- systemd/kube-controller-manager.service
Options:
captureStdout: true

View File

@ -44,6 +44,10 @@ Scripts:
- init_conf/kube-proxy.conf
- initd_scripts/kubelet
- initd_scripts/kube-proxy
- environ/kubelet
- environ/kube-config
- systemd/kube-proxy.service
- systemd/kubelet.service
Options:
captureStdout: true

View File

@ -30,7 +30,8 @@ Scripts:
- default_scripts/etcd-master
- init_conf/etcd.conf
- initd_scripts/etcd
- environ/etcd
- systemd/etcd.service
Options:
captureStdout: true
captureStderr: true

View File

@ -30,7 +30,8 @@ Scripts:
- default_scripts/etcd-member
- init_conf/etcd.conf
- initd_scripts/etcd
- environ/etcd
- systemd/etcd.service
Options:
captureStdout: true

View File

@ -28,7 +28,8 @@ Scripts:
- init_conf/flanneld.conf
- initd_scripts/flanneld
- default_scripts/flanneld
- systemd/flanneld.service
- systemd/docker.service
Options:
captureStdout: true
captureStderr: true

View File

@ -0,0 +1,26 @@
###
# kubernetes system config
#
# The following values are used to configure the kube-apiserver
#
# The address on the local server to listen to.
KUBE_API_ADDRESS="--address=0.0.0.0"
# The port on the local server to listen on.
# KUBE_API_PORT="--port=8080"
# Port minions listen on
# KUBELET_PORT="--kubelet-port=10250"
# Comma separated list of nodes in the etcd cluster
KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:4001"
# Address range to use for services
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
# default admission control policies
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
# Add your own!
KUBE_API_ARGS="--portal_net=11.1.0.0/16"

View File

@ -0,0 +1,12 @@
###
# etcd system config
#
NAME="-name %%NAME%%"
LISTEN_PEER_URLS="-listen-peer-urls http://%%IP%%:7001,http://127.0.0.1:7001"
LISTEN_CLIENT_URLS="-listen-client-urls http://%%IP%%:4001,http://127.0.0.1:4001"
INITIAL_ADV_PEER_URLS="-initial-advertise-peer-urls http://%%IP%%:7001"
INITIAL_CLUSTER_STATE="-initial-cluster-state %%STATE%%"
INITIAL_CLUSTER="-initial-cluster %%CLUSTER_CONFIG%%"
ADV_CLIENT_URLS="-advertise-client-urls http://%%IP%%:4001,http://127.0.0.1:4001"
ETCD_OPTS="-snapshot-count 1000"

View File

@ -0,0 +1,22 @@
###
# kubernetes system config
#
# The following values are used to configure various aspects of all
# kubernetes services, including
#
# kube-apiserver.service
# kube-controller-manager.service
# kube-scheduler.service
# kubelet.service
# kube-proxy.service
# logging to stderr means we get it in the systemd journal
KUBE_LOGTOSTDERR="--logtostderr=true"
# journal message level, 0 is debug
KUBE_LOG_LEVEL="--v=0"
# Should this cluster be allowed to run privileged docker containers
KUBE_ALLOW_PRIV="--allow-privileged=false"
# How the controller-manager, scheduler, and proxy find the apiserver
KUBE_MASTER="--master=http://%%MASTER_IP%%:8080"

View File

@ -0,0 +1,17 @@
###
# kubernetes kubelet (minion) config
# The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
KUBELET_ADDRESS="--address=%%IP%%"
# The port for the info server to serve on
# KUBELET_PORT="--port=10250"
# You may leave this blank to use the actual hostname
KUBELET_HOSTNAME="--hostname-override=%%IP%%"
# location of the api-server
KUBELET_API_SERVER="--api-servers=http://%%MASTER_IP%%:8080"
# Add your own!
KUBELET_ARGS=""

View File

@ -9,10 +9,18 @@ cp -f haproxy.tmpl /etc/confd/templates/
cp -f default_scripts/haproxy /etc/default/
sed -i.bkp "s/%%MASTER_NODE%%/$1/g" init_conf/confd.conf
cp -f init_conf/confd.conf /etc/init/
service confd start
service haproxy start
if [[ $(which systemctl) ]]; then
sed -i.bak "s/%%MASTER_NODE%%/$1/g" systemd/confd.service
cp -f systemd/confd.service /etc/systemd/system/
systemctl enable confd
systemctl start confd
systemctl enable haproxy
systemctl start haproxy
else
sed -i.bak "s/%%MASTER_NODE%%/$1/g" init_conf/confd.conf
cp -f init_conf/confd.conf /etc/init/
service confd start
service haproxy start
fi
sleep 1

View File

@ -4,4 +4,4 @@ dest = "/etc/haproxy/haproxy.cfg"
keys = [
"/registry/services"
]
reload_cmd = "/usr/sbin/service haproxy reload"
reload_cmd = "/usr/sbin/service haproxy restart"

View File

@ -3,16 +3,38 @@
# $1 - NAME
# $2 - IP
#
service etcd stop
mkdir /var/lib/etcd
sed -i.bkp "s/%%NAME%%/$1/g" default_scripts/etcd-master
sed -i.bkp "s/%%IP%%/$2/g" default_scripts/etcd-master
if [[ $(which systemctl) ]]; then
systemctl stop etcd
mkdir -p /var/lib/etcd
cp -f default_scripts/etcd-master /etc/default/etcd
cp init_conf/etcd.conf /etc/init/
sed -i.bak "s/%%NAME%%/$1/g" environ/etcd
sed -i.bak "s/%%IP%%/$2/g" environ/etcd
sed -i.bak "s/%%STATE%%/new/g" environ/etcd
sed -i.bak "s/%%CLUSTER_CONFIG%%/$1=http:\/\/$2:7001/g" environ/etcd
chmod +x initd_scripts/*
cp initd_scripts/etcd /etc/init.d/
service etcd start
sleep 10
echo 'INITIAL_CLUSTER_TOKEN="--initial-cluster-token new-token"' >> environ/etcd
cp -f environ/etcd /etc/default/
cp -f systemd/etcd.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable etcd
systemctl start etcd
else
service etcd stop
mkdir /var/lib/etcd
sed -i.bak "s/%%NAME%%/$1/g" default_scripts/etcd-master
sed -i.bak "s/%%IP%%/$2/g" default_scripts/etcd-master
cp -f default_scripts/etcd-master /etc/default/etcd
cp init_conf/etcd.conf /etc/init/
chmod +x initd_scripts/*
cp initd_scripts/etcd /etc/init.d/
service etcd start
fi
sleep 5

View File

@ -3,38 +3,62 @@
# $1 - NAME
# $2 - IP
service kube-proxy stop
service kube-scheduler stop
service kube-controller-manager stop
service kubelet stop
service kube-apiserver stop
#Disable controller-manager for now
#chmod -x /etc/init.d/kube-controller-manager
#Create log folder for Kubernetes services
mkdir /var/log/kubernetes
mkdir -p /var/run/murano-kubernetes
sed -i.bkp "s/%%MASTER_IP%%/$2/g" default_scripts/kube-scheduler
if [[ $(which systemctl) ]]; then
systemctl stop kube*
sed -i.bak "s/%%MASTER_IP%%/$2/g" environ/kube-config
cp -f default_scripts/kube-apiserver /etc/default/
cp -f default_scripts/kube-scheduler /etc/default/
cp -f default_scripts/kube-controller-manager /etc/default/
mkdir -p /etc/kubernetes/
cp init_conf/kube-apiserver.conf /etc/init/
cp init_conf/kube-controller-manager.conf /etc/init/
cp init_conf/kube-scheduler.conf /etc/init/
cp -f environ/apiserver /etc/kubernetes/apiserver
cp -f environ/kube-config /etc/kubernetes/config
chmod +x initd_scripts/*
cp initd_scripts/kube-apiserver /etc/init.d/
cp initd_scripts/kube-controller-manager /etc/init.d/
cp initd_scripts/kube-scheduler /etc/init.d/
cp -f systemd/kube-apiserver.service /etc/systemd/system/
cp -f systemd/kube-scheduler.service /etc/systemd/system/
cp -f systemd/kube-controller-manager.service /etc/systemd/system/
service kube-apiserver start
service kube-scheduler start
service kube-controller-manager start
systemctl daemon-reload
systemctl enable kube-apiserver
systemctl enable kube-scheduler
systemctl enable kube-controller-manager
systemctl start kube-apiserver
systemctl start kube-scheduler
systemctl start kube-controller-manager
else
service kube-proxy stop
service kube-scheduler stop
service kube-controller-manager stop
service kubelet stop
service kube-apiserver stop
#Disable controller-manager for now
#chmod -x /etc/init.d/kube-controller-manager
sed -i.bak "s/%%MASTER_IP%%/$2/g" default_scripts/kube-scheduler
cp -f default_scripts/kube-apiserver /etc/default/
cp -f default_scripts/kube-scheduler /etc/default/
cp -f default_scripts/kube-controller-manager /etc/default/
cp init_conf/kube-apiserver.conf /etc/init/
cp init_conf/kube-controller-manager.conf /etc/init/
cp init_conf/kube-scheduler.conf /etc/init/
chmod +x initd_scripts/*
cp initd_scripts/kube-apiserver /etc/init.d/
cp initd_scripts/kube-controller-manager /etc/init.d/
cp initd_scripts/kube-scheduler /etc/init.d/
service kube-apiserver start
service kube-scheduler start
service kube-controller-manager start
fi
mkdir /var/log/kubernetes
/opt/bin/kubectl delete node 127.0.0.1
sleep 1

View File

@ -6,13 +6,13 @@
mkdir /var/lib/etcd
if [[ $(systemctl) ]]; then
if [[ $(which systemctl) ]]; then
systemctl stop etcd
sed -i.bkp "s/%%NAME%%/$1/g" environ/etcd
sed -i.bkp "s/%%IP%%/$2/g" environ/etcd
sed -i.bkp "s/%%STATE%%/existing/g" environ/etcd
sed -i.bkp "s#%%CLUSTER_CONFIG%%#$3#g" environ/etcd
sed -i.bak "s/%%NAME%%/$1/g" environ/etcd
sed -i.bak "s/%%IP%%/$2/g" environ/etcd
sed -i.bak "s/%%STATE%%/existing/g" environ/etcd
sed -i.bak "s#%%CLUSTER_CONFIG%%#$3#g" environ/etcd
cp -f environ/etcd /etc/default/
cp -f systemd/etcd.service /etc/systemd/system/
@ -24,9 +24,9 @@ if [[ $(systemctl) ]]; then
else
service etcd stop
sed -i.bkp "s/%%NAME%%/$1/g" default_scripts/etcd-member
sed -i.bkp "s/%%IP%%/$2/g" default_scripts/etcd-member
sed -i.bkp "s#%%CLUSTER_CONFIG%%#$3#g" default_scripts/etcd-member
sed -i.bak "s/%%NAME%%/$1/g" default_scripts/etcd-member
sed -i.bak "s/%%IP%%/$2/g" default_scripts/etcd-member
sed -i.bak "s#%%CLUSTER_CONFIG%%#$3#g" default_scripts/etcd-member
cp -f default_scripts/etcd-member /etc/default/etcd
cp init_conf/etcd.conf /etc/init/

View File

@ -4,24 +4,49 @@
# $2 - IP
# $3 - MASTER_IP
mkdir /var/log/kubernetes
mkdir -p /var/run/murano-kubernetes
sed -i.bkp "s/%%MASTER_IP%%/$3/g" default_scripts/kube-proxy
sed -i.bkp "s/%%MASTER_IP%%/$3/g" default_scripts/kubelet
sed -i.bkp "s/%%IP%%/$2/g" default_scripts/kubelet
if [[ $(which systemctl) ]]; then
cp init_conf/kubelet.conf /etc/init/
cp init_conf/kube-proxy.conf /etc/init/
sed -i.bak "s/%%MASTER_IP%%/$3/g" environ/kube-config
sed -i.bak "s/%%MASTER_IP%%/$3/g" environ/kubelet
sed -i.bak "s/%%IP%%/$2/g" environ/kubelet
chmod +x initd_scripts/*
cp initd_scripts/kubelet /etc/init.d/
cp initd_scripts/kube-proxy /etc/init.d/
mkdir -p /etc/kubernetes/
cp -f default_scripts/kube-proxy /etc/default
cp -f default_scripts/kubelet /etc/default/
cp -f environ/kubelet /etc/kubernetes/
cp -f environ/kube-config /etc/kubernetes/config
service kubelet start
service kube-proxy start
cp -f systemd/kube-proxy.service /etc/systemd/system/
cp -f systemd/kubelet.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable kubelet
systemctl enable kube-proxy
systemctl start kubelet
systemctl start kube-proxy
else
mkdir /var/log/kubernetes
sed -i.bak "s/%%MASTER_IP%%/$3/g" default_scripts/kube-proxy
sed -i.bak "s/%%MASTER_IP%%/$3/g" default_scripts/kubelet
sed -i.bak "s/%%IP%%/$2/g" default_scripts/kubelet
cp init_conf/kubelet.conf /etc/init/
cp init_conf/kube-proxy.conf /etc/init/
chmod +x initd_scripts/*
cp initd_scripts/kubelet /etc/init.d/
cp initd_scripts/kube-proxy /etc/init.d/
cp -f default_scripts/kube-proxy /etc/default
cp -f default_scripts/kubelet /etc/default/
service kubelet start
service kube-proxy start
fi
sleep 1

View File

@ -1,5 +1,5 @@
#!/bin/bash
count=10
count=30
echo "Adding flannel configuration to etcd"

View File

@ -1,12 +1,21 @@
#!/bin/bash
cp init_conf/flanneld.conf /etc/init/
chmod +x initd_scripts/flanneld
cp initd_scripts/flanneld /etc/init.d/
cp default_scripts/flanneld /etc/default/
if [[ $(which systemctl) ]]; then
cp -f systemd/docker.service /lib/systemd/system/
cp -f systemd/flanneld.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable flanneld
systemctl start flanneld
service flanneld start
else
cp init_conf/flanneld.conf /etc/init/
chmod +x initd_scripts/flanneld
cp initd_scripts/flanneld /etc/init.d/
cp default_scripts/flanneld /etc/default/
service flanneld start
fi
source /run/flannel/subnet.env 2> /dev/null
while [ -z "$FLANNEL_SUBNET" ]

View File

@ -0,0 +1,13 @@
[Unit]
Description=Configuration Service
Requires=etcd.service
[Service]
Restart=always
ExecStart=/usr/local/bin/confd \
-backend etcd \
-node %%MASTER_NODE%%:4001 \
-interval 15
[Install]
WantedBy=basic.target

View File

@ -0,0 +1,19 @@
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target docker.socket
Requires=docker.socket
[Service]
Type=notify
EnvironmentFile=-/etc/default/docker
ExecStart=/usr/bin/docker daemon -H fd:// $DOCKER_OPTS
MountFlags=slave
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,25 @@
[Unit]
Description=etcd key-value store
Documentation=https://github.com/coreos/etcd
[Service]
Type=notify
Environment=ETCD_DATA_DIR=/var/lib/etcd
EnvironmentFile=-/etc/default/etcd
ExecStart=/opt/bin/etcd \
$NAME \
$LISTEN_PEER_URLS \
$LISTEN_CLIENT_URLS \
$INITIAL_ADV_PEER_URLS \
$INITIAL_CLUSTER_STATE \
$INITIAL_CLUSTER \
$ADV_CLIENT_URLS \
$INITIAL_CLUSTER_TOKEN \
$ETCD_OPTS
Restart=always
RestartSec=10s
LimitNOFILE=40000
StandardOutput=null
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,16 @@
[Unit]
Description=Flanneld overlay address etcd agent
After=network.target
After=network-online.target
Wants=network-online.target
After=etcd.service
Before=docker.service
[Service]
Type=notify
ExecStart=/opt/bin/flanneld
Restart=on-failure
[Install]
WantedBy=multi-user.target
RequiredBy=docker.service

View File

@ -0,0 +1,26 @@
[Unit]
Description=Kubernetes API Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=network.target
After=etcd.service
[Service]
EnvironmentFile=-/etc/kubernetes/config
EnvironmentFile=-/etc/kubernetes/apiserver
ExecStart=/opt/bin/kube-apiserver \
$KUBE_LOGTOSTDERR \
$KUBE_LOG_LEVEL \
$KUBE_ETCD_SERVERS \
$KUBE_API_ADDRESS \
$KUBE_API_PORT \
$KUBELET_PORT \
$KUBE_ALLOW_PRIV \
$KUBE_SERVICE_ADDRESSES \
$KUBE_ADMISSION_CONTROL \
$KUBE_API_ARGS
Restart=on-failure
Type=notify
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,16 @@
[Unit]
Description=Kubernetes Controller Manager
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service]
EnvironmentFile=-/etc/kubernetes/config
ExecStart=/opt/bin/kube-controller-manager \
$KUBE_LOGTOSTDERR \
$KUBE_LOG_LEVEL \
$KUBE_MASTER \
$KUBE_CONTROLLER_MANAGER_ARGS
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,18 @@
[Unit]
Description=Kubernetes Kube-Proxy Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=network.target
[Service]
EnvironmentFile=-/etc/kubernetes/config
EnvironmentFile=-/etc/kubernetes/proxy
ExecStart=/opt/bin/kube-proxy \
$KUBE_LOGTOSTDERR \
$KUBE_LOG_LEVEL \
$KUBE_MASTER \
$KUBE_PROXY_ARGS
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,16 @@
[Unit]
Description=Kubernetes Scheduler Plugin
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service]
EnvironmentFile=-/etc/kubernetes/config
ExecStart=/opt/bin/kube-scheduler \
$KUBE_LOGTOSTDERR \
$KUBE_LOG_LEVEL \
$KUBE_MASTER \
$KUBE_SCHEDULER_ARGS
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,23 @@
[Unit]
Description=Kubernetes Kubelet Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=docker.service
Requires=docker.service
[Service]
EnvironmentFile=-/etc/kubernetes/config
EnvironmentFile=-/etc/kubernetes/kubelet
ExecStart=/opt/bin/kubelet \
$KUBE_LOGTOSTDERR \
$KUBE_LOG_LEVEL \
$KUBELET_API_SERVER \
$KUBELET_ADDRESS \
$KUBELET_PORT \
$KUBELET_HOSTNAME \
$KUBE_ALLOW_PRIV \
$KUBELET_ARGS
Restart=on-failure
KillMode=process
[Install]
WantedBy=multi-user.target