Skip to content

Instantly share code, notes, and snippets.

@chiradeep
Last active July 10, 2019 12:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save chiradeep/7ad6fcd17d25f5c792d5061039cc2787 to your computer and use it in GitHub Desktop.
Save chiradeep/7ad6fcd17d25f5c792d5061039cc2787 to your computer and use it in GitHub Desktop.
#!/bin/bash
set -x
master_ip=$1
ipaddr=$(ip addr show dev eth0 | grep "inet " | cut -d ' ' -f 6 | cut -f 1 -d '/')
is_master=${2:-"true"}
[ -n "$master_ip" ] || exit 1
echo "Master IP is $master_ip"
echo "My IP is $ipaddr"
configure_etcd() {
sed -i "s/ETCD_LISTEN_CLIENT_URLS=.*$/ETCD_LISTEN_CLIENT_URLS=\"http:\/\/localhost:2379,http:\/\/$master_ip:2379\"/" /etc/etcd/etcd.conf
systemctl restart etcd
etcdctl mk /coreos.com/network/config '{"Network":"172.17.0.0/16"}'
}
configure_kube_master() {
#bug in CentOS
mkdir -p /var/run/kubernetes
chown kube.kube /var/run/kubernetes
sed -i "s/KUBE_MASTER=.*$/KUBE_MASTER=\"--master=$master_ip:8080\"/" /etc/kubernetes/apiserver
sed -i "s/KUBE_SERVICE_ADDRESSES=.*$/KUBE_SERVICE_ADDRESSES=\"--service-cluster-ip-range=172.17.0.0\/16\"/" /etc/kubernetes/apiserver
sed -i "s/KUBE_API_ADDRESS=.*$/KUBE_API_ADDRESS=\"--insecure-bind-address=0.0.0.0\"/" /etc/kubernetes/apiserver
}
configure_flanneld() {
sed -i "s/FLANNEL_ETCD=.*$/FLANNEL_ETCD=\"http:\/\/$master_ip:2379\"/" /etc/sysconfig/flanneld
sed -i "s/FLANNEL_ETCD_KEY=.*$/FLANNEL_ETCD_KEY=\"\/coreos.com\/network\"/" /etc/sysconfig/flanneld
}
configure_kube_node() {
cat << EOF > /etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_PORT="--port=10250"
KUBELET_HOSTNAME="--hostname_override=$ipaddr"
KUBELET_API_SERVER="--api_servers=http://$master_ip:8080"
KUBELET_ARGS=""
EOF
cat << EOF > /etc/kubernetes/config
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://$master_ip:8080"
EOF
}
start_services() {
systemctl enable flannel
systemctl restart flanneld
#systemctl status $SERVICES
systemctl enable docker
systemctl restart flanneld
if [[ $? -ne 0 ]]
then
#work around for some bug in docker 1.62
rm -rf /var/lib/docker/
systemctl restart docker
fi
let status=$?
systemctl enable kube-proxy
systemctl restart kube-proxy
let status=status+$?
systemctl enable kubelet
systemctl restart kubelet
let status=status+$?
for SERVICES in flanneld docker kube-proxy kubelet; do
systemctl status $SERVICES
done
return $status
}
configure_etcd
echo "Configured etcd"
configure_kube_master
echo "Configured kube master"
configure_flanneld
echo "Configured flanneld"
configure_kube_node
echo "Configured kube node"
start_services
exit $?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment