温馨提示×

新手如何搞debian k8s部署

小樊
45
2026-09-26 12:04:29
栏目: 智能运维

下面给你一份面向新手、可落地的 Debian + Kubernetes 部署指南,不堆概念,只讲“怎么一步步搞起来”。


一、准备环境(最基础)

1. 机器要求

  • Debian 11/12(推荐 12)
  • 至少 2 核 CPU、2G 内存(master 建议 2G+)
  • 多台机器(1 master + 1~n worker,或单机 All-in-One 练习)

2. 系统初始化(每台机器都要做)

# 关闭 swap
sudo swapoff -a
sudo sed -i '/swap/s/^/#/' /etc/fstab

# 设置 hostname
sudo hostnamectl set-hostname master

# 关闭防火墙(练习环境)
sudo ufw disable

# 加载内核模块
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
sudo modprobe br_netfilter

# 内核参数
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system

二、安装容器运行时(推荐 containerd)

sudo apt update
sudo apt install -y containerd

# 生成默认配置
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml

# 修改 SystemdCgroup = true
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml

sudo systemctl restart containerd
sudo systemctl enable containerd

三、安装 kubeadm / kubelet / kubectl

sudo apt install -y apt-transport-https ca-certificates curl

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | \
  sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /" | \
  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

四、初始化 Master 节点

sudo kubeadm init \
  --pod-network-cidr=10.244.0.0/16

成功后你会看到类似:

kubeadm join 192.168.x.x:6443 --token xxx --discovery-token-ca-cert-hash sha256:xxx

保存好这条命令

配置 kubectl:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

五、安装网络插件(必装)

推荐 Flannel(最简单):

kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

等一会:

kubectl get nodes

状态变成 Ready 就成功了。


六、加入 Worker 节点

在 worker 机器上执行 master 初始化时的 join 命令:

sudo kubeadm join 192.168.x.x:6443 --token xxx \
  --discovery-token-ca-cert-hash sha256:xxx

七、验证集群

kubectl get nodes
kubectl get pods -A

八、新手常见坑

问题 原因
node 一直 NotReady 网络插件没装
kubectl 报错 config 没配置
pod 起不来 swap 没关
国内拉镜像慢 可换国内镜像源

九、新手建议路线

  1. 先用 单台 Debian 虚拟机 练手
  2. 跑一个 nginx Pod
  3. 再用 Deployment + Service
  4. 最后再研究 Ingress / Helm

如果你愿意,我可以:

  • 给你 一键脚本版
  • 帮你 在虚拟机里练
  • 或讲 k8s 核心概念(Pod / Service / Deployment)

你现在是 纯新手 / 有 Linux 基础 / 想生产用 哪一种?

0 踩