温馨提示×

Debian下K8s如何启动

小樊
33
2026-09-14 10:28:22
栏目: 智能运维

Debian 系统上启动 Kubernetes(K8s),通常有两种常见方式:


一、使用 kubeadm(官方推荐,生产/学习都适用)

1. 系统准备

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

# 设置主机名
sudo hostnamectl set-hostname master

# 配置 hosts
cat <<EOF | sudo tee -a /etc/hosts
192.168.1.10 master
192.168.1.11 node1
EOF

# 加载内核模块
sudo modprobe br_netfilter

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

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

2. 安装容器运行时(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

3. 安装 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/k8s.gpg

echo "deb [signed-by=/etc/apt/keyrings/k8s.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

4. 初始化 Master 节点

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

初始化完成后:

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

5. 安装网络插件(Calico 示例)

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

6. 启动并查看状态

sudo systemctl enable kubelet
sudo systemctl start kubelet

kubectl get nodes

二、Node 节点加入集群

在 Master 初始化后会输出类似:

kubeadm join 192.168.1.10:6443 --token xxxx \
  --discovery-token-ca-cert-hash sha256:xxxx

在 Node 上执行即可。


三、常见问题

  • 节点 NotReady:网络插件未安装或 Cgroup 不一致
  • kubelet 起不来:swap 未关闭 / containerd 配置错误
  • 无法拉镜像:需配置国内镜像或离线包

如果你是指 “系统重启后如何启动 K8s”,通常:

sudo systemctl start kubelet

(kubelet 会自动拉起其他组件)


如果你说的是 单机测试(Minikube / Kind),我也可以给你对应方案。

0