Install docker-ce

curl -fsSL [<https://mirrors.aliyun.com/docker-ce/linux/ubuntu/>](<https://mirrors.aliyun.com/docker-ce/linux/ubuntu/>)[gpg](<http://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg>) | sudo apt-key add -

sudo add-apt-repository \\
   "deb [arch=amd64] [<https://mirrors.aliyun.com/docker-ce/linux/ubuntu/>](<https://mirrors.aliyun.com/docker-ce/linux/ubuntu/>) bionic stable"

sudo apt install docker-ce

Install kubeadm

curl -fsSL <https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg> | sudo apt-key add - 
sudo apt-add-repository "deb <https://mirrors.aliyun.com/kubernetes/apt/> kubernetes-xenial main"
sudo apt install -y kubeadm kubelet kubernetes-cni

Init using kubeadm

Check content of this file(https://dl.k8s.io/release/stable-1.txt) for the latest stable version:

https://dl.k8s.io/release/stable-1.txt

pull images needed by kubeadm init:

kubeadm config images list --kubernetes-version v1.14.3 | sudo ./docker.py pull -

Init using kubeadm

sudo kubeadm init --pod-network-cidr=10.244.0.0/16 \\
	--apiserver-advertise-address=0.0.0.0 \\
	--kubernetes-version v1.14.3

Setup network

pull kube-router

sudo ./docker.py pull cloudnativelabs/kube-router

apply kube-router

kubectl apply -f [<https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/kubeadm-kuberouter.yaml>](<https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/kubeadm-kuberouter.yaml>)

allow pods to run on master

kubectl taint nodes --all [node-role.kubernetes.io/master-](<http://node-role.kubernetes.io/master->)

Setup helm

sudo snap install helm --classic
helm init --stable-repo-url [<https://kubernetes-charts.proxy.ustclug.org/>](<https://kubernetes-charts.proxy.ustclug.org/>)

kubectl --namespace kube-system create serviceaccount tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl --namespace kube-system patch deploy tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'