在 Ubuntu 20.04 服务器上搭建轻量级 Kubernetes(k3s)集群,并部署典型的微服务架构。本文将覆盖硬件选型、系统准备、k3s 安装、网络与存储方案、部署示例、CI/CD 集成及性能评估,对每个步骤提供具体配置与代码示例。
注意:本文假设您有至少两台可以访问互联网的物理服务器或云主机,并具备基本的 Linux 权限和网络规划经验。
一、服务器硬件与系统选型
由于 k3s 设计用于边缘计算、IoT 和轻量容器平台,推荐在中等规格服务器上运行。以下是我们在生产预研阶段使用的典型硬件配置:
| 节点 | CPU | 内存 | 存储 | 网络 |
|---|---|---|---|---|
| master-1 | 4 核 Intel Xeon | 8 GB ECC | 120 GB NVMe | 1 Gbps |
| worker-1 | 4 核 Intel Xeon | 8 GB ECC | 120 GB NVMe | 1 Gbps |
| worker-2 | 4 核 Intel Xeon | 8 GB ECC | 120 GB NVMe | 1 Gbps |
说明
- CPU 规格:4 核物理核心是推荐的最小值,用于保证 kubelet / containerd / ingress 等正常运行。
- 内存:8 GB 以上,因 k3s 默认集成了 traefik、metrics-server、servicelb 等组件。
- 存储:NVMe 提供高 IOPS,有利于 microservice 数据库和日志写入。
- 网络:1 Gbps 接口,可满足中等规模的 east-west 流量。
我们使用的操作系统是 Ubuntu 20.04 LTS x86_64,核心版本至少为 5.4.x。
二、系统预配置
在所有节点执行以下步骤:
2.1 更新基础软件
sudo apt update && sudo apt upgrade -y && sudo apt install -y curl wget apt-transport-https gnupg2 software-properties-common
2.2 关闭 Swap
k3s/k8s 要求 swap 关闭:
sudo swapoff -a
sudo sed -i '/ swap / s/^/#/' /etc/fstab
2.3 配置内核参数
为了支持高级网络:
cat << EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
sudo sysctl --system

