在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
```。
注意事项: