余味YUWEI
云原生ARTICLE / 2026

单机 Kubernetes 1.34 安装与服务部署流程

在 Ubuntu 24.04 上搭建单机 Kubernetes 1.34,并部署 containerd、Traefik 与基础服务。

2026.02.01 阅读约 6 分钟 Kubernetes · containerd · Traefik

一、环境准备

  • 机器规格:4 核 8G 内存,80G 硬盘

  • 操作系统:Ubuntu 24.04

  • 内网 NAS 提供 NFS 存储

系统准备:

swapoff -a
sed -i '/swap/d' /etc/fstab
modprobe overlay
modprobe br_netfilter
cat <<EOF >/etc/sysctl.d/k8s.conf
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-iptables=1
EOF

sysctl --system

二、安装 containerd

  1. 安装 containerd:
sudo apt update
sudo apt install -y containerd
  1. 生成默认配置:
sudo mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' \
/etc/containerd/config.toml
  1. 重新启动:
sudo systemctl restart containerd
  1. 验证:
containerd --version
sudo ctr version

三、安装 Kubernetes 1.34(单机)

  1. 安装依赖
sudo apt update
apt install -y apt-transport-https ca-certificates curl
  1. 安装 kubeadm、kubelet、kubectl
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.34/deb/Release.key \
| gpg --dearmor -o /etc/apt/keyrings/kubernetes.gpg

echo "deb [signed-by=/etc/apt/keyrings/kubernetes.gpg] \
https://pkgs.k8s.io/core:/stable:/v1.34/deb/ /" \
> /etc/apt/sources.list.d/kubernetes.list

sudo apt update
apt install -y kubeadm kubelet kubectl
  1. 初始化单节点集群
kubeadm init \
  --pod-network-cidr=10.244.0.0/16 \
  --cri-socket=unix:///run/containerd/containerd.sock
  • 保存 kubeconfig:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
  • 单机允许调度

  • 允许普通 Pod 被调度到 control-plane(主控节点)上运行

kubectl taint nodes --all node-role.kubernetes.io/control-plane-
  1. 安装网络插件 Flannel
kubectl apply -f \
https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
  • 验证:
kubectl get pods -n kube-system 

四、安装 Traefik Ingress

  1. 安装 Helm3
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash 
  1. 添加 Traefik 仓库
helm repo add traefik https://helm.traefik.io/traefik
helm repo update
  1. 安装 Traefik
kubectl create namespace traefik
helm install traefik traefik/traefik \
  -n traefik \
  -f traefik-values.yaml
  1. 配置文件traefik-value.yaml
# traefik-value.yaml
deployment:
  replicas: 1

ports:
  web:
    port: 8000           
    exposedPort: 80   
  websecure:
    port: 8443           
    exposedPort: 443   

service:
  type: LoadBalancer
  loadBalancerIP: 10.10.0.100

LB参考 MetalLB部署搭建