#!/bin/bash # curl https://gist.github.com/jeremyje/14e26148909734ebe1d6395cc8b0e156/raw/master.sh | bash function WaitForKubectl { n=0 until [ $n -ge 5 ] do command && kubectl get nodes n=$[$n+1] sleep 5 done } function InstallWeaveNet { echo "Install WeaveNet" sudo sysctl net.bridge.bridge-nf-call-iptables=1 #sudo kubeadm init --pod-network-cidr=10.244.0.0/16 sudo kubeadm init --pod-network-cidr=192.168.86.0/24 echo "Waiting for network (10s)..." WaitForKubectl # https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#pod-network kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" } function InstallFlannel { echo "Install Flannel" sudo sysctl net.bridge.bridge-nf-call-iptables=1 sudo kubeadm init --pod-network-cidr=10.244.0.0/16 echo "Waiting for network (10s)..." WaitForKubectl # https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#pod-network #kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml #kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/4ff77dc7c35851913587f7daccf25d754e77aa65/Documentation/kube-flannel.yml kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml #echo "Opening UDP ports for Flannel Network Fabric" sudo iptables -A INPUT -p udp --dport 8285 -j ACCEPT sudo iptables -A INPUT -p udp --dport 8472 -j ACCEPT } function InstallPostFlannel { #kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml #kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/4ff77dc7c35851913587f7daccf25d754e77aa65/Documentation/kube-flannel.yml kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml } function InstallCalico { echo "Install Calico Network Fabric" kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml sudo kubeadm init --pod-network-cidr=192.168.86.0/24 } function InstallKubeRouter { echo "Install KubeRouter Fabric" sudo kubeadm init --pod-network-cidr=192.168.86.0/24 } function Prereq { sudo swapoff -a cat <