Debian系统Kubernetes部署注意事项
导读:Debian系统Kubernetes部署注意事项 一 系统与版本选择 优先选用Debian 12(Bookworm),与主流Kubernetes版本兼容性与支持度更好;Debian 11仍可使用,但在新版本特性与依赖上可能遇到更多兼容性问...
Debian系统Kubernetes部署注意事项
一 系统与版本选择
- 优先选用Debian 12(Bookworm),与主流Kubernetes版本兼容性与支持度更好;Debian 11仍可使用,但在新版本特性与依赖上可能遇到更多兼容性问题。
- 资源基线建议每节点至少2核CPU、2GB内存、20GB磁盘,并确保网络稳定与时钟同步。
- 规划好Kubernetes版本与容器运行时的组合:自v1.24起,Dockershim被移除,推荐使用containerd或CRI-O;若必须使用Docker,需额外安装cri-dockerd适配。
二 内核与系统参数
-
关闭Swap:执行swapoff -a并注释**/etc/fstab**中的swap行,避免kubelet异常与性能劣化。
-
加载必要内核模块并开启转发:
cat < < EOF | sudo tee /etc/modules-load.d/k8s.conf overlay br_netfilter EOF sudo modprobe overlay sudo modprobe br_netfilter cat < < EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.ipv4.ip_forward = 1 EOF sudo sysctl --system -
可选优化:将vm.swappiness设为0(需持久化到sysctl配置),进一步降低swap倾向。
三 容器运行时选择与安装
-
推荐方案:安装并启用containerd(Kubernetes官方默认CRI)。
-
若必须使用Docker:安装Docker官方包,并部署cri-dockerd以作为Kubernetes的CRI接口。示例(Debian官方仓库安装Docker):
sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ $(. /etc/os-release & & echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io sudo systemctl enable --now docker # 如使用Docker,另需安装并启用 cri-dockerd(适配K8s的CRI) -
安装完成后,确认运行时与kubelet使用一致的cgroup驱动(常见为systemd)。
四 网络与安全配置
- 防火墙与端口:若启用UFW,放行控制面与节点通信所需端口,例如6443/tcp(API Server)、10250/tcp(kubelet)、以及kube-proxy/调度器等组件端口;如使用Calico等插件,还需放行BGP 179/tcp或VXLAN 4789/udp等。示例:
sudo ufw allow 6443/tcp
sudo ufw allow 10250/tcp
sudo ufw allow 179/tcp
sudo ufw allow 4789/udp
sudo ufw reload - 主机名与解析:为每个节点设置唯一主机名,并在**/etc/hosts**或DNS中维护节点IP与主机名的稳定映射,避免控制面与节点通信异常。
- 安全建议:不要粗暴关闭AppArmor/SELinux等安全模块,优先通过配置策略放行所需能力;确需临时禁用时,务必评估风险并做好回滚方案。
五 部署与运维要点
- 组件安装与版本锁定:在所有节点安装kubelet、kubeadm、kubectl,并建议执行apt-mark hold避免非预期升级导致版本漂移。
- 初始化与控制面:使用kubeadm init初始化集群,注意设置**–pod-network-cidr与镜像仓库(国内可选镜像源以加速拉取);完成后将/etc/kubernetes/admin.conf拷贝至~/.kube/config**以供kubectl使用。
- 网络插件:部署前确认Pod CIDR与插件一致,常见选择为Calico或Flannel,例如:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml - 节点加入与验证:使用kubeadm join加入工作节点;通过kubectl get nodes与kubectl get pods -A检查状态。
- 常见问题排查:
- Pod无法启动:检查容器日志与事件,必要时在Pod spec中设置enableServiceLinks: false减少环境变量注入冲突。
- 节点NotReady:确认CNI插件已就绪、内核参数生效、节点污点(taints)与Pod容忍度匹配。
- 镜像拉取慢/失败:配置镜像仓库镜像源或企业私有仓库。
- 监控与日志:上线后尽快接入Prometheus + Grafana与日志收集(如ELK/EFK),并建立备份与升级策略(先非核心集群演练)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian系统Kubernetes部署注意事项
本文地址: https://pptw.com/jishu/771509.html
