From eb701d4869731c0c531d370387acddde47992e67 Mon Sep 17 00:00:00 2001 From: Dmytro Dovbii Date: Thu, 16 Jun 2016 13:15:37 +0300 Subject: [PATCH] [K8s] Update scripts with etcd and flannel configuration This patch adds tuning of existing scripts related to updating etcd binaries from 2.0.13 to 2.2.5 Change-Id: I33eac5abe96449a2a35f7305632b68fd20960f5c --- .../Resources/scripts/init_conf/etcd.conf | 12 ++-- .../Resources/scripts/master-add-member.sh | 13 ++++- .../Resources/scripts/master-etcd-setup.sh | 2 +- .../Resources/scripts/member-etcd-setup.sh | 55 +++++++++++++++---- .../Resources/scripts/setupFlannelMaster.sh | 16 +++++- 5 files changed, 80 insertions(+), 18 deletions(-) diff --git a/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/init_conf/etcd.conf b/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/init_conf/etcd.conf index 6a808bd1..c4721428 100644 --- a/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/init_conf/etcd.conf +++ b/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/init_conf/etcd.conf @@ -1,8 +1,15 @@ description "Etcd service" author "@jainvipin" +start on (net-device-up + and local-filesystems + and runlevel [2345]) + respawn +# set max open files +limit nofile 2048 4096 + pre-start script # see also https://github.com/jainvipin/kubernetes-ubuntu-start ETCD=/opt/bin/$UPSTART_JOB @@ -24,7 +31,4 @@ script . /etc/default/$UPSTART_JOB fi exec "$ETCD" $ETCD_OPTS -end script - -start on runlevel [235] -stop on runlevel [016] \ No newline at end of file +end script \ No newline at end of file diff --git a/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/master-add-member.sh b/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/master-add-member.sh index 6b4fde48..9f6f5979 100644 --- a/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/master-add-member.sh +++ b/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/master-add-member.sh @@ -2,15 +2,26 @@ # $1 - NAME # $2 - IP + count=30 +echo "Adding member $1 to etcd cluster" >> /tmp/etcd.log while [ $count -gt 0 ]; do - out=$(/opt/bin/etcdctl member add "$1" "http://$2:7001") + /opt/bin/etcdctl cluster-health >> /tmp/etcd.log if [ $? -eq 0 ]; then + out=$((/opt/bin/etcdctl member add "$1" "http://$2:7001") 2>&1) + if [ $? -ne 0 ]; then + echo "Member $1 not added. Reason: $out" >> /tmp/etcd.log + break + fi + echo -e "Member $1 has been added\n" >> /tmp/etcd.log echo "$out" | grep ETCD_INITIAL_CLUSTER= | cut -f 2 -d '"' exit 0 fi + echo "Member $1 not added" >> /tmp/etcd.log ((count-- )) sleep 2 done + +cat /tmp/etcd.log exit 1 diff --git a/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/master-etcd-setup.sh b/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/master-etcd-setup.sh index 7ad4bea9..fb0b7844 100644 --- a/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/master-etcd-setup.sh +++ b/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/master-etcd-setup.sh @@ -15,4 +15,4 @@ cp init_conf/etcd.conf /etc/init/ chmod +x initd_scripts/* cp initd_scripts/etcd /etc/init.d/ service etcd start -sleep 5 \ No newline at end of file +sleep 10 \ No newline at end of file diff --git a/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/member-etcd-setup.sh b/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/member-etcd-setup.sh index 97a4e795..6c22b913 100644 --- a/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/member-etcd-setup.sh +++ b/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/member-etcd-setup.sh @@ -4,18 +4,51 @@ # $2 - IP # $3 - ETCD_INITIAL_CLUSTER -service etcd stop - mkdir /var/lib/etcd -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 -cp -f default_scripts/etcd-member /etc/default/etcd -cp init_conf/etcd.conf /etc/init/ -chmod +x initd_scripts/etcd -cp initd_scripts/etcd /etc/init.d/ +if [[ $(systemctl) ]]; then + systemctl stop etcd -service etcd start + 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 -sleep 30 \ No newline at end of file + 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 + + 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 + + cp -f default_scripts/etcd-member /etc/default/etcd + cp init_conf/etcd.conf /etc/init/ + chmod +x initd_scripts/etcd + cp initd_scripts/etcd /etc/init.d/ + + service etcd start +fi + +#check if cluster works well after member adding +count=30 + +echo "Registration member $1 in etcd cluster" >> /tmp/etcd.log +while [ $count -gt 0 ]; do + /opt/bin/etcdctl cluster-health >> tmp/etcd.log + if [ $? -eq 0 ]; then + echo "Member $1 started" >> /tmp/etcd.log + sleep 10 + exit 0 + fi + ((count-- )) + sleep 5 +done +echo "Member $1 is not started" >> /tmp/etcd.log +exit 1 \ No newline at end of file diff --git a/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/setupFlannelMaster.sh b/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/setupFlannelMaster.sh index ed0ee505..7591f0e8 100644 --- a/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/setupFlannelMaster.sh +++ b/Docker/Kubernetes/KubernetesCluster/package/Resources/scripts/setupFlannelMaster.sh @@ -1,3 +1,17 @@ #!/bin/bash +count=10 -/opt/bin/etcdctl mk /coreos.com/network/config '{"Network":"10.200.0.0/16"}' +echo "Adding flannel configuration to etcd" + +command=$((/opt/bin/etcdctl set /coreos.com/network/config '{"Network":"10.200.0.0/16"}') 2>&1) + +while [ $count -gt 0 ]; do + if [ $command ]; then + echo "Flannel is configured on master node" >> /tmp/etcd.log + exit 0 + fi + echo "Flannel configuration was not added. Reason: $command" + ((count-- )) + sleep 5 +done +exit 1