Kubernetes部署在Debian上的最佳实践
硬件与系统要求
192.168.1.10,Worker节点为192.168.1.11、192.168.1.12等)。系统优化
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#&/' /etc/fstab
/etc/sysctl.conf,添加以下内容以支持容器网络转发:net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
应用配置:sudo sysctl -p。主机标识配置
k8s-master,Worker节点k8s-worker1),并通过/etc/hosts文件配置IP与主机名映射:echo "192.168.1.10 k8s-master" | sudo tee -a /etc/hosts
echo "192.168.1.11 k8s-worker1" | sudo tee -a /etc/hosts
容器运行时选择
sudo apt update
sudo apt install -y containerd
sudo mkdir -p /etc/containerd
sudo containerd config default > /etc/containerd/config.toml
sudo systemctl enable --now containerd
cgroupdriver为systemd)。Kubernetes组件安装
$(lsb_release -cs)为Debian版本代号,如bookworm):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
kubelet、kubeadm、kubectl(用于集群初始化与管理),并锁定版本防止自动升级:sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
初始化Master节点
kubeadm init命令,指定Pod网络CIDR(如10.244.0.0/16,适配Flannel等插件):sudo kubeadm init --pod-network-cidr=10.244.0.0/16
kubeadm join命令(用于Worker节点加入集群),需妥善保存。配置kubectl
.kube目录并将集群配置复制到用户目录: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
kubectl get pods -n calico-system
所有Pod应处于Running状态。kubeadm init输出的kubeadm join命令(包含Token和CA证书哈希),例如:sudo kubeadm join 192.168.1.10:6443 --token abcdef.1234567890abcdef \
--discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
kubectl get nodes,应显示Worker节点状态为Ready。权限管理
dev、prod),隔离不同业务的工作负载。网络安全
6443端口、Worker节点的10250端口)。系统安全
sudo apt update && sudo apt upgrade -y)。监控与日志
备份与恢复
etcdctl工具或第三方备份方案(如Velero)。kubeadm的最新测试版,优先选择稳定版本。