在Debian上實現K8S高可用部署需從硬件準備、組件安裝、高可用配置及監控等方面操作,以下是關鍵步驟:
環境準備
sudo swapoff -a
并修改/etc/fstab
永久生效。安裝基礎組件
sudo apt update && sudo apt install -y containerd
sudo tee /etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF
sudo modprobe overlay br_netfilter
sudo sysctl --system
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update && sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
初始化Master節點
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --control-plane-endpoint="LOAD_BALANCER_DNS:6443"
(LOAD_BALANCER_DNS
為負載均衡器地址,需后續配置)。mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
部署網絡插件
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
高可用配置
kubeadm
初始化時指定--control-plane-endpoint
實現多節點冗余。sudo apt install haproxy
sudo tee /etc/haproxy/haproxy.cfg <<EOF
frontend k8s-apiserver
bind *:6443
mode tcp
default_backend k8s-masters
backend k8s-masters
balance roundrobin
server master1 MASTER_IP1:6443 check
server master2 MASTER_IP2:6443 check
EOF
sudo systemctl restart haproxy
```。
kubeadm
將其他Master節點加入集群時指定--control-plane
參數,實現多Master節點的Leader選舉。監控與管理
ETCDCTL_API=3 etcdctl snapshot save /path/to/backup.db
```。
注意事項: