首页主机资讯Debian环境下Kubernetes部署的最佳实践分享

Debian环境下Kubernetes部署的最佳实践分享

时间2025-11-25 19:59:03发布访客分类主机资讯浏览1040
导读:一 环境与规划 操作系统与版本:优先选用 Debian 12(Bookworm),内核保持最新稳定版,以获得更好的容器与网络栈兼容性与安全修复。 硬件基线:控制平面建议至少 2 核 CPU / 4GB RAM / 20GB 磁盘;工作节点...

一 环境与规划

  • 操作系统与版本:优先选用 Debian 12(Bookworm),内核保持最新稳定版,以获得更好的容器与网络栈兼容性与安全修复。
  • 硬件基线:控制平面建议至少 2 核 CPU / 4GB RAM / 20GB 磁盘;工作节点视负载适当提升。
  • 网络与互通:节点间需 稳定互通,规划好 Pod CIDRService CIDR,避免与现有网段冲突;示例:Pod 使用 10.244.0.0/16,Service 使用 10.96.0.0/12
  • 主机名与解析:为每个节点设置唯一 hostname,并在 /etc/hosts 或 DNS 中维护解析,便于故障排查与组件通信。
  • 安全基线:统一使用 非 root 运维账户,SSH 密钥登录,最小化暴露面。

二 系统加固与内核参数

  • 关闭 Swap:Kubelet 不支持 Swap,需永久关闭。
    • 执行:sudo swapoff -a
    • 持久化:sudo sed -i '/ swap / s/^/#/' /etc/fstab
  • 加载内核模块与开启桥接转发:
    • 模块:sudo modprobe overlay & & sudo modprobe br_netfilter
    • 开机加载:echo -e "overlay\nbr_netfilter" | sudo tee /etc/modules-load.d/k8s.conf
    • 转发与网桥规则:echo -e "net.bridge.bridge-nf-call-iptables=1\nnet.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-kubernetes.conf & & sudo sysctl --system
  • 防火墙放行控制面与节点通信端口(示例为 UFW):
    • sudo ufw allow 6443/tcp
    • sudo ufw allow 2379:2380/tcp
    • sudo ufw allow 10250/tcp
    • sudo ufw allow 10251/tcp
    • sudo ufw allow 10252/tcp
    • sudo ufw allow 10255/tcp
    • sudo ufw reload
  • 容器运行时:生产环境优先 containerd;如使用 Docker,需确保 containerd 组件一并安装并启用。

三 容器运行时与Kubernetes组件安装

  • 安装 containerd(推荐):
    • 安装包:sudo apt-get update & & sudo apt-get install -y containerd
    • 生成默认配置:sudo containerd config default | sudo tee /etc/containerd/config.toml
    • 启用并启动:sudo systemctl enable --now containerd
  • 安装 kubeadm、kubelet、kubectl:
    • 添加仓库与密钥(示例):
      • curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor | sudo tee /usr/share/keyrings/kubernetes-apt-keyring.gpg > /dev/null
      • echo "deb [signed-by=/usr/share/keyrings/kubernetes-apt-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
    • 安装与冻结版本:sudo apt-get update & & sudo apt-get install -y kubelet kubeadm kubectl & & sudo apt-mark hold kubelet kubeadm kubectl
  • 说明:Debian 12 仓库代号通常为 bookworm,但 Kubernetes APT 源目前仍使用代号 kubernetes-xenial,属正常现象。

四 集群初始化与网络插件

  • 初始化控制平面(示例):
    • sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
    • 配置 kubectl:mkdir -p $HOME/.kube & & sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config & & sudo chown $(id -u):$(id -g) $HOME/.kube/config
  • 安装网络插件(二选一,按网络规划匹配 Pod CIDR):
    • Flannel:kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    • Calico:kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
  • 加入工作节点:在主节点 kubeadm init 成功后输出 kubeadm join 命令,在工作节点执行以加入集群。
  • 验证:kubectl get nodeskubectl get pods -A 检查节点与系统 Pod 状态。

五 安全加固与运维建议

  • 运行时安全:容器以 非 root 用户运行,镜像保持 最小化 与及时更新;定期升级 Kubernetes 组件 与节点补丁。
  • 访问控制:为 kubeconfig 设置最小权限,使用 RBAC 精细授权;对外暴露仅必要的 6443 等端口,内部组件端口限制为节点间访问。
  • 可观测性:部署 监控与日志(如节点与容器指标、日志采集与告警),便于快速定位故障与容量评估。
  • 网络策略:启用 NetworkPolicy 实现命名空间与服务间隔离,减少横向移动风险。
  • 镜像与仓库:优先使用可信 镜像仓库签名的容器镜像,避免运行不受信任来源镜像。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian环境下Kubernetes部署的最佳实践分享
本文地址: https://pptw.com/jishu/755893.html
Laravel在Debian上如何实现第三方登录 Debian上Kubernetes部署的资源需求

游客 回复需填写必要信息