Install an essential software & Fix some bugs
[iec.git] / src / foundation / scripts / k8s_common.sh
1 #!/bin/bash -ex
2
3 DOCKER_VERSION=18.06.1~ce~3-0~ubuntu
4 KUBE_VERSION=1.13.0-00
5 K8S_CNI_VERSION=0.6.0-00
6
7 # Install basic software
8 sudo apt update
9 sudo apt install -y software-properties-common apt-transport-https curl
10
11 # Install Docker as Prerequisite
12 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
13 sudo apt-key fingerprint 0EBFCD88
14 sudo add-apt-repository \
15   "deb https://download.docker.com/linux/ubuntu \
16   $(lsb_release -cs) \
17   stable"
18 sudo apt update
19 sudo apt install -y docker-ce=${DOCKER_VERSION}
20
21 # Disable swap on your machine
22 sudo swapoff -a
23
24 # Install Kubernetes with Kubeadm
25 curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
26
27 cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
28 deb https://apt.kubernetes.io/ kubernetes-xenial main
29 EOF
30 sudo apt update
31 # Minor fix for broken kubernetes-cni dependency in upstream xenial repo
32 sudo apt install -y \
33   kubernetes-cni=${K8S_CNI_VERSION} kubelet=${KUBE_VERSION} kubeadm=${KUBE_VERSION} kubectl=${KUBE_VERSION}
34 sudo apt-mark hold kubernetes-cni kubelet kubeadm kubectl
35
36 #Add extra flags to Kubelet
37 if ! grep -q -e 'fail-swap-on' /etc/default/kubelet; then
38    sudo sed 's/KUBELET_EXTRA_ARGS=/KUBELET_EXTRA_ARGS=--fail-swap-on=false --feature-gates HugePages=false/' -i /etc/default/kubelet
39 fi
40
41 sudo modprobe br_netfilter
42 _conf='/etc/sysctl.d/99-akraino-iec.conf'
43 echo 'net.bridge.bridge-nf-call-iptables = 1' |& sudo tee "${_conf}"
44 sudo sysctl -q -p "${_conf}"