本文基于Debian 12系统,详解Kubernetes服务器搭建全流程,涵盖系统初始化(禁用swap、配置主机名、安装依赖)、containerd容器运行时部署、kubeadm初始化控制平面节点、配置网络插件(Calico)、工作节点加入及集群验证等关键步骤,强调内核参数调整、防火墙规则设置及组件版本兼容性注意事项,为从零开始搭建生产可用K8s集群提供实操指南,适合运维及开发者参考。
Kubernetes(简称K8s)作为当前最主流的容器编排平台,能够实现容器的自动化部署、扩展和管理,Debian 12作为最新的稳定版Linux发行版,凭借其稳定性和广泛的软件支持,是搭建K8s服务器的理想选择,本文将以Debian 12为基础,详细介绍从环境准备到K8s集群搭建的完整流程,涵盖容器运行时配置、控制平面初始化、网络插件安装等关键步骤,帮助读者快速构建一个可用的K8s集群。
准备工作
在开始搭建K8s集群前,需完成以下环境准备工作,确保系统满足K8s的基本要求。
系统环境要求
- 操作系统:Debian 12(Bookworm)
- 架构:x86_64(AMD64)或ARM64
- 内存:控制节点至少2GB,工作节点至少1GB(推荐4GB+)
- CPU:至少2核(推荐4核+)
- 存储:至少20GB可用空间
- 网络:节点间能通过内网IP通信,防火墙允许相关端口通信
基础系统配置
(1)更新系统
sudo apt update && sudo apt upgrade -y
(2)检查内核版本
K8s要求Linux内核版本≥5.4,可通过以下命令检查:

uname -r
若版本低于5.4,需升级内核(Debian 12默认内核版本通常满足要求)。
(3)关闭Swap
K8s要求关闭Swap,否则kubelet启动会失败。
- 临时关闭(重启后失效):
sudo swapoff -a
- 永久关闭:注释掉
/etc/fstab中的Swap相关行:sudo nano /etc/fstab
找到类似
/swap.img none swap sw 0 0的行,在行首添加注释,保存退出。
(4)设置主机名与hosts解析
为每个节点设置唯一主机名,并配置hosts解析(示例以控制节点k8s-master和工作节点k8s-node1为例):
# 控制节点 sudo hostnamectl set-hostname k8s-master echo "192.168.1.10 k8s-master" | sudo tee -a /etc/hosts # 工作节点(每个节点分别执行) sudo hostnamectl set-hostname k8s-node1 echo "192.168.1.11 k8s-node1" | sudo tee -a /etc/hosts
(5)配置防火墙
K8s集群需开放特定端口,可根据实际需求调整(以下为常用端口):
# 控制节点开放端口(TCP) sudo ufw allow 6443 # API Server sudo ufw allow 2379 # etcd client sudo ufw allow 2380 # etcd peer sudo ufw allow 10250 # kubelet API sudo ufw allow 10251 # scheduler sudo ufw allow 10252 # controller-manager # 工作节点开放端口(TCP) sudo ufw allow 10250 # kubelet API sudo ufw allow 30000 # NodePort(可选) # 启用防火墙 sudo ufw enable
安装依赖软件包
K8s集群依赖部分基础工具,需提前安装:
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
配置Containerd容器运行时
K8s通过CRI(Container Runtime Interface)管理容器,Containerd是目前推荐的主流容器运行时(替代Docker)。
添加Containerd官方APT源
# 添加GPG密钥 sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 添加源 echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装Containerd
sudo apt update sudo apt install -y containerd.io
配置Containerd
Containerd默认配置可能不满足K8s的
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

