首页主机资讯Debian下Kubernetes部署全攻略

Debian下Kubernetes部署全攻略

时间2025-11-27 20:33:04发布访客分类主机资讯浏览1301
导读:Debian 12 上使用 kubeadm 部署 Kubernetes 的完整实战指南 一 环境准备与系统要求 节点规划:至少准备1 台 Master与1 台 Worker;生产建议3 台以上提升容错。 硬件建议:每节点至少2 核 CPU...

Debian 12 上使用 kubeadm 部署 Kubernetes 的完整实战指南

一 环境准备与系统要求

  • 节点规划:至少准备1 台 Master1 台 Worker;生产建议3 台以上提升容错。
  • 硬件建议:每节点至少2 核 CPU、2GB RAM、20GB 磁盘(更推荐4GB+ RAM与 SSD)。
  • 操作系统:Debian 12 Bookworm,内核建议5.x及以上。
  • 网络要求:节点间互通,可访问外网拉取镜像;规划好Pod 网络 CIDRService CIDR,避免与现有网段冲突。
  • 主机标识:设置唯一主机名/etc/hosts 映射;克隆虚拟机需确保MAC 地址product_uuid唯一。

二 系统初始化与容器运行时

  • 更新与基础工具
    • sudo apt update & & sudo apt upgrade -y
    • sudo apt install -y apt-transport-https ca-certificates curl
  • 关闭 Swap(Kubelet 要求)
    • sudo swapoff -a
    • sudo sed -i ‘/ swap / s/^(.*)$/#\1/g’ /etc/fstab
  • 内核网络参数(桥接与转发)
    • echo -e “net.bridge.bridge-nf-call-iptables=1\nnet.bridge.bridge-nf-call-ip6tables=1\nnet.ipv4.ip_forward=1” | sudo tee /etc/sysctl.d/99-kubernetes.conf
    • sudo sysctl --system
  • 加载内核模块
    • sudo modprobe br_netfilter
    • echo “br_netfilter” | sudo tee -a /etc/modules-load.d/k8s.conf
  • 容器运行时 containerd(推荐)
    • sudo apt install -y containerd
    • sudo systemctl enable --now containerd
    • 生成默认配置并启用 SystemdCgroup

      sudo mkdir -p /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml sudo sed -i ‘s/SystemdCgroup = false/SystemdCgroup = true/g’ /etc/containerd/config.toml sudo systemctl restart containerd
  • 可选 Docker(如已安装,请确保 containerd 可用)
    • sudo apt install -y docker-ce docker-ce-cli containerd.io
    • sudo systemctl enable --now docker

三 安装 kubeadm kubelet kubectl

  • 添加 Kubernetes APT 仓库(Debian 12 仍可使用 xenial 仓库名)
    • 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
  • 启动 kubelet
    • sudo systemctl enable --now kubelet

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

  • 初始化 Master(示例为 Flannel,Pod CIDR 使用 10.244.0.0/16
    • sudo kubeadm init --pod-network-cidr=10.244.0.0/16
    • 如有多网卡或需指定 API 地址:–apiserver-advertise-address=< MASTER_IP>

  • 配置 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
  • 验证
    • kubectl get nodes
    • kubectl get pods -n kube-system
  • 加入 Worker 节点(使用 kubeadm init 输出命令)
    • sudo kubeadm join < MASTER_IP> :6443 --token --discovery-token-ca-cert-hash sha256:
  • 可选 国内镜像加速(拉取 gcr.io 镜像)
    • kubeadm init --image-repository registry.aliyuncs.com/google_containers …

五 常见问题排查与安全加固

  • 节点 NotReady
    • 确认 containerd 运行正常(sudo systemctl status containerd)
    • 检查 Pod CIDR 与网络插件是否匹配(Flannel 默认 10.244.0.0/16
    • 查看 kubelet 日志:journalctl -u kubelet -f
  • 镜像拉取失败
    • 配置 containerd 镜像加速(registry mirrors),或使用 –image-repository 指定国内仓库
  • 端口与防火墙
    • 放行 6443(API)、10250(kubelet)、2379-2380(etcd)、10251/10252(kube-scheduler/controller)、以及 8472/4789(Flannel VXLAN)等;云环境在安全组放行
  • 克隆虚拟机导致冲突
    • 检查并修正 /sys/class/dmi/id/product_uuid 与网卡 MAC 唯一性
  • 安全加固建议
    • 启用 RBAC最小权限命名空间隔离
    • 限制对敏感端口访问,开启审核日志节点加固
    • 定期升级 Kubernetes 组件与补丁

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


若转载请注明出处: Debian下Kubernetes部署全攻略
本文地址: https://pptw.com/jishu/758255.html
Debian JS如何处理错误 Kafka在Linux上的安全性分析

游客 回复需填写必要信息