Initialize Cluster
Control Plane
Cluster initialize
control_node=192.168.56.2
cidr=192.168.128.0/17 # 192.168.0.0/16 # calico
sudo kubeadm init --pod-network-cidr=$cidr --apiserver-advertise-address=$control_node --v=5
Copy kubeconfig
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Multiple Control Plane
Load balancer
sudo apt install -y haproxy
sudo systemctl enable haproxy
sh haproxy.sh
sudo systemctl restart haproxy
Cluster initialize
cidr=192.168.128.0/17 # 192.168.0.0/16 # calico
control_plane_ip="192.168.56.2"
load_balancer="192.168.56.101"
control_plane_endpoint="${load_balancer}:6443"
sudo kubeadm init --control-plane-endpoint $control_plane_endpoint --pod-network-cidr=$cidr --upload-certs
Copy kubeconfig
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Install CNI
Calico
version=$(curl https://api.github.com/repos/projectcalico/calico/releases/latest | jq -r .tag_name)
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/$version/manifests/calico.yaml
# kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
Join Control Plane
Get command
kubeadm token create --print-join-command
Get certificate key
kubeadm init phase upload-certs --upload-certs
Join cluster
sudo kubeadm join 192.168.56.101:6443 --token xxxx.xxxx --discovery-token-ca-cert-hash sha256:xxxx \
--control-plane --certificate-key xxxxxxxx
Update load balancer
sudo sed -i '/master2/s/#//' /etc/haproxy/haproxy.cfg
sudo systemctl restart haproxy
Join Worker Node
Get command
kubeadm token create --print-join-command
Join cluster
sudo kubeadm join 192.168.56.101:6443 --token xxxx.xxxx --discovery-token-ca-cert-hash sha256:xxxx
Update worker node label
NODE=worker
kubectl label node $NODE node-role.kubernetes.io/worker=