Skip to content

Instantly share code, notes, and snippets.

@stephaneerard
Created February 3, 2021 21:02
Show Gist options
  • Select an option

  • Save stephaneerard/1945ff01224048de4f0b1803f3f9b3cd to your computer and use it in GitHub Desktop.

Select an option

Save stephaneerard/1945ff01224048de4f0b1803f3f9b3cd to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
k_iface=${k_iface:=enp0s8}
k_apiserver_advertise_address=${k_apiserver_advertise_address:=$(ip addr show $k_iface | grep -Po 'inet \K[\d.]+')}
k_pod_network_cidr=${k_pod_network_cidr:="172.18.0.0/16"}
ROLE=${ROLE:="master"}
sudo swapoff -a
if [[ $MASTER == $(hostname) ]]; then
sudo kubeadm init --apiserver-advertise-address=${k_apiserver_advertise_address} --pod-network-cidr=${k_pod_network_cidr}
mkdir -p $HOME/.kube
(rm /vagrant/instance/k8s.conf) || true
sudo cp -i /etc/kubernetes/admin.conf /vagrant/instance/k8s.conf
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubeadm token create --print-join-command > /vagrant/instance/k8s.join.command.create.sh
cat /vagrant/instance/k8s.join.command.create.sh
chmod +x /vagrant/instance/k8s.join.command.create.sh
sudo cp -f /var/lib/kubelet/pki/kubelet-client-current.pem /vagrant/instance/kubelet-client-current.pem
else
mkdir -p $HOME/.kube
sudo cp -fi /vagrant/instance/k8s.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
sudo mkdir -p /var/lib/kubelet/pki/
sudo cp -fi /vagrant/instance/kubelet-client-current.pem /var/lib/kubelet/pki/kubelet-client-current.pem
(sudo bash /vagrant/instance/k8s.join.command.create.sh) || true # will fail after timeout 40s
sudo kubeadm reset -f
sudo bash /vagrant/instance/k8s.join.command.create.sh
kubectl label nodes $(hostname) kubernetes.io/role=${ROLE}
fi
kubectl cluster-info
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment