Created
February 3, 2021 21:02
-
-
Save stephaneerard/1945ff01224048de4f0b1803f3f9b3cd to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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