首页主机资讯Debian系统与Kubernetes的集成实践

Debian系统与Kubernetes的集成实践

时间2026-01-22 08:02:03发布访客分类主机资讯浏览1435
导读:一 环境准备与系统基线 节点基线:建议每个节点至少具备2 核 CPU、2 GB 内存、20 GB 磁盘,并确保节点间网络互通;操作系统建议使用Debian 12或更高版本。 主机名与解析:为各节点设置唯一主机名,并在所有节点的**/etc...

一 环境准备与系统基线

  • 节点基线:建议每个节点至少具备2 核 CPU、2 GB 内存、20 GB 磁盘,并确保节点间网络互通;操作系统建议使用Debian 12或更高版本。
  • 主机名与解析:为各节点设置唯一主机名,并在所有节点的**/etc/hosts**中完成解析,便于集群内通信与排障。
  • 关闭 Swap:Kubelet 要求关闭 Swap,执行:sudo swapoff -a,并在**/etc/fstab**中注释或移除 swap 条目,避免重启后恢复。
  • 容器运行时:生产环境优先使用containerd;若使用 Docker,需确保其与 Kubernetes 版本兼容并正确配置 cgroup 驱动。
  • 防火墙与端口:放行控制面与工作节点通信所需端口,例如6443(API Server)、10250(kubelet)等,避免节点 NotReady 或组件异常。

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

  • 安装 containerd(推荐):
    • 安装与启用:sudo apt install -y containerd
    • 生成默认配置:sudo mkdir -p /etc/containerd & & containerd config default | sudo tee /etc/containerd/config.toml
    • 按需调整 cgroup 驱动(与 kubelet 保持一致,常见为 systemd),然后:sudo systemctl daemon-reload & & sudo systemctl enable --now containerd
  • 安装 Docker(可选):
    • 添加仓库并安装:sudo apt update & & sudo apt install -y docker-ce docker-ce-cli containerd.io
    • 启动与开机自启:sudo systemctl start docker & & sudo systemctl enable docker
  • 添加 Kubernetes APT 仓库并安装组件:
    • 导入 GPG 与仓库(示例为 Debian 12 “bookworm”):
      sudo apt update
      sudo apt install -y apt-transport-https ca-certificates curl gnupg
      curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg
      echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] 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
      
    • 说明:Kubernetes 官方 APT 仓库当前仍使用发行代号xenial,在Debian 12上可用;安装后将 kubelet 设为开机自启:sudo systemctl enable --now kubelet

三 初始化控制平面与网络插件

  • 初始化控制平面(单主示例):
    sudo kubeadm init \
      --apiserver-advertise-address <
        MASTER_IP>
         \
      --control-plane-endpoint <
        MASTER_IP>
        :6443 \
      --pod-network-cidr 10.244.0.0/16 \
      --service-cidr 10.100.0.0/16 \
      --image-repository registry.aliyuncs.com/google_containers
    
    • 常见参数说明:
      • –pod-network-cidr:与所选 CNI 插件规划保持一致(如 Flannel 常用10.244.0.0/16)。
      • –service-cidr:集群 Service 网段,避免与宿主机/内网网段冲突。
      • –image-repository:在受限网络环境下可指定国内镜像仓库以加速拉取。
  • 配置 kubectl:
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
  • 安装 CNI 网络插件(二选一):
    • 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
  • 验证:kubectl cluster-infokubectl get nodes 应显示控制平面节点状态为Ready

四 加入工作节点与日常运维

  • 加入工作节点:在 Master 初始化完成后,使用输出的 kubeadm join ... 命令在各 Worker 上执行,例如:
    sudo kubeadm join <
        MASTER_IP>
        :6443 \
      --token <
        TOKEN>
         \
      --discovery-token-ca-cert-hash sha256:<
        HASH>
        
    
    加入成功后,回到 Master 执行 kubectl get nodes 查看节点状态。
  • 节点管理与资源:
    • 使用节点标签进行调度:kubectl label node < node> disktype=ssd
    • 为工作负载设置资源请求/限制,提升稳定性与密度。
    • 如需 GPU:安装对应驱动与设备插件,并在 Pod 中请求 nvidia.com/gpu
  • 监控与可视化:
    • 部署 Prometheus + Grafana(可用 Operator/Helm),监控集群与应用指标。
    • 使用 Kubernetes Dashboard 或终端工具 K9s 进行日常巡检与快速排障。

五 常见问题与优化建议

  • 节点 NotReady:优先检查Swap 是否彻底关闭CNI 是否已安装并 Running容器运行时是否就绪、以及防火墙/安全组端口是否放行。
  • 镜像拉取失败:在受限网络中使用 --image-repository registry.aliyuncs.com/google_containers 或配置私有镜像仓库/镜像代理。
  • 版本与兼容性:保持 kubelet/kubeadm/kubectl 版本一致;选择与 Kubernetes 版本匹配的 containerd/Docker 版本。
  • 生产建议:
    • 采用多控制平面高可用拓扑(如 kubeadm HA)。
    • 启用 RBAC网络策略Pod 安全准入审计日志
    • 使用 Helm 管理常用应用与组件,结合 GitOps 流程进行交付与回滚。
    • 定期升级集群与节点组件,遵循官方支持周期。

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


若转载请注明出处: Debian系统与Kubernetes的集成实践
本文地址: https://pptw.com/jishu/789751.html
Debian MariaDB数据库迁移方法 Debian MariaDB集群方案有哪些

游客 回复需填写必要信息