2017-08-01 15:26:11 -07:00
|
|
|
#!/bin/bash +e
|
|
|
|
|
|
2017-11-22 01:28:18 -05:00
|
|
|
KUBE_VERSION=${1:-"v1.8.5"}
|
2017-08-01 15:26:11 -07:00
|
|
|
|
|
|
|
|
null_str=
|
|
|
|
|
KUBE_INSTALL_VERSION="${KUBE_VERSION/v/$null_str}"-00
|
|
|
|
|
|
2017-09-14 09:40:34 -07:00
|
|
|
# Kubelet cannot run with swap enabled: https://github.com/kubernetes/kubernetes/issues/34726
|
|
|
|
|
# Disabling swap when installing k8s 1.8.x via kubeadm
|
2017-10-04 12:10:14 -07:00
|
|
|
sudo swapoff -a
|
2017-08-01 15:26:11 -07:00
|
|
|
|
2017-09-14 09:40:34 -07:00
|
|
|
# init flexvolume
|
|
|
|
|
if [[ $KUBE_VERSION == v1.5* ]] || [[ $KUBE_VERSION == v1.6* ]] || [[ $KUBE_VERSION == v1.7* ]] ;
|
|
|
|
|
then
|
|
|
|
|
sudo mkdir -p /usr/libexec/kubernetes/kubelet-plugins/volume/exec/rook.io~rook
|
|
|
|
|
cat << EOF | sudo tee -a /usr/libexec/kubernetes/kubelet-plugins/volume/exec/rook.io~rook/rook
|
|
|
|
|
#!/bin/bash
|
|
|
|
|
echo -ne '{"status": "Success", "capabilities": {"attach": false}}' >&1
|
|
|
|
|
exit 0
|
|
|
|
|
EOF
|
|
|
|
|
sudo chmod +x /usr/libexec/kubernetes/kubelet-plugins/volume/exec/rook.io~rook/rook
|
|
|
|
|
fi
|
|
|
|
|
|
2017-08-09 17:34:10 -07:00
|
|
|
wait_for_dpkg_unlock() {
|
|
|
|
|
#wait for dpkg lock to disappear.
|
|
|
|
|
retry=0
|
|
|
|
|
maxRetries=20
|
|
|
|
|
retryInterval=10
|
|
|
|
|
until [ ${retry} -ge ${maxRetries} ]
|
|
|
|
|
do
|
|
|
|
|
if [[ `sudo lsof /var/lib/dpkg/lock|wc -l` -le 0 ]]; then
|
|
|
|
|
break
|
|
|
|
|
fi
|
|
|
|
|
((++retry))
|
|
|
|
|
echo "."
|
|
|
|
|
sleep ${retryInterval}
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
if [ ${retry} -ge ${maxRetries} ]; then
|
|
|
|
|
echo "Failed after ${maxRetries} attempts! - cannot install kubeadm"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2017-08-03 11:20:19 -07:00
|
|
|
sudo apt-get update
|
2017-08-09 17:34:10 -07:00
|
|
|
wait_for_dpkg_unlock
|
|
|
|
|
sleep 5
|
|
|
|
|
wait_for_dpkg_unlock
|
2017-08-03 11:20:19 -07:00
|
|
|
|
|
|
|
|
sudo apt-get install -y apt-transport-https
|
2017-08-01 15:26:11 -07:00
|
|
|
sudo curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
|
|
|
|
|
sudo cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
|
|
|
|
|
deb http://apt.kubernetes.io/ kubernetes-xenial main
|
|
|
|
|
EOF
|
|
|
|
|
|
|
|
|
|
#install kubeadm and kubelet
|
2017-08-09 17:34:10 -07:00
|
|
|
sudo apt-get update
|
|
|
|
|
wait_for_dpkg_unlock
|
|
|
|
|
sleep 5
|
|
|
|
|
wait_for_dpkg_unlock
|
|
|
|
|
|
|
|
|
|
sudo apt-get install -y kubelet=${KUBE_INSTALL_VERSION} && sudo apt-get install -y kubeadm=${KUBE_INSTALL_VERSION}
|
2017-08-01 15:26:11 -07:00
|
|
|
|
|
|
|
|
#get matching kubectl
|
|
|
|
|
wget https://storage.googleapis.com/kubernetes-release/release/${KUBE_VERSION}/bin/linux/amd64/kubectl
|
|
|
|
|
chmod +x kubectl
|
|
|
|
|
sudo cp kubectl /usr/local/bin
|