Debian 12搭建Kubernetes(K8s)服务器完整指南

admin
本文基于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,可通过以下命令检查:

Debian 12搭建Kubernetes(K8s)服务器完整指南

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原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码