当前位置:首页>Linux>轻量级Kubernetes,在Linux上运行K3s

轻量级Kubernetes,在Linux上运行K3s

  • 2026-10-21 13:28:31
轻量级Kubernetes,在Linux上运行K3s

本文面向DevOps工程师和云原生开发者,介绍如何选择和使用轻量级Kubernetes方案来搭建预生产环境。我们将重点介绍K3s这一优秀的轻量级Kubernetes发行版,并提供详细的安装部署指南。

引言:为什么需要轻量级Kubernetes?

想象一下这样的场景:你正在开发一个微服务应用,需要在本地或云服务器上搭建一个与生产环境相似的验收环境。传统的Kubernetes集群需要3-5个节点,每个节点至少2GB内存,这对于个人开发或小型项目来说成本太高了。此外,Kubernetes是重量级的组件,完整地安装Kubernetes服务劝退无数开发者。

这就是轻量级Kubernetes的价值所在:它们能够在单台机器上运行完整的Kubernetes功能,大大降低了资源消耗和学习成本。

传统Kubernetes vs 轻量级Kubernetes

对比维度
传统K8s
轻量级K8s
资源需求
3-5节点,每个2GB+内存
单节点,512MB内存
安装复杂度
复杂,需要专业运维知识
简单,一键安装
学习成本
高,需要掌握网络、存储等概念
低,专注于应用部署
适用场景
大型企业生产环境
开发测试、边缘计算、小型项目

预生产环境(Staging)的重要性

在软件交付流程中,预生产环境(Staging)扮演着承上启下的关键角色。它就像是正式演出前的彩排现场,能够:

  1. 发现潜在问题:在接近生产环境的情况下验证功能完整性
  2. 性能摸底:测试系统在高并发下的表现
  3. 流程验证:演练部署、回滚等运维操作
  4. 用户验收:让业务方提前体验新功能

使用Kubernetes搭建Staging环境的最大优势是环境一致性:开发、测试、生产环境使用相同的配置和部署方式,大大减少了"在我机器上能运行"的问题。

轻量级 Kubernetes 技术选型

市面上的轻量级Kubernetes方案众多,该如何选择?

技术方案对比

GitHub Stars 数据截止到 2026-01-13

方案
GitHub Stars
核心优势
简介
上手难度
K3s
⭐31.9k+
生产就绪,资源消耗极低
Lightweight Kubernetes
⭐⭐
Minikube
⭐31.4k+
官方推荐,文档完善
Run Kubernetes locally
⭐⭐
Docker Desktop Kubernetes
❌
开箱即用,图形界面
⭐
MicroK8s
⭐9.2k+
自动更新,高可用
MicroK8s is a small, fast, single-package Kubernetes for datacenters and the edge.
⭐⭐
Kind
⭐14.9k+
快速启动,容器化
Kubernetes IN Docker - local clusters for testing Kubernetes
⭐⭐⭐

选型建议:按场景选择

🚀 场景一:云服务器部署

推荐方案:K3s

核心优势:

  • 易于安装,维护成本低
  • 社区活跃,文档丰富
  • 专为资源受限环境设计,内存占用低
  • 支持高可用模式,适合小型生产环境

💻 场景二:本地开发环境,

推荐方案:Docker Desktop K8s(Windows/macOS)或 Minikube(Linux)

云原生中容器技术学习路线:Docker First,Then Kubernetes

核心优势:

  • 开箱即用,无需配置,随时启停
  • 图形化界面,操作直观
Kubernetes in Docker Desktop

实战:在Ubuntu上部署K3s

不同于本地开发环境,预生产环境往往涉及到与其他系统集成,需具备:公网IP、Linux宿主机等依赖,尽可能与生产环境一致。下面我们通过一个完整的实战案例,演示如何在Ubuntu服务器上部署K3s。

环境准备

演示项目环境为:TencentCloud Lighthouse(腾讯云轻量应用服务器),Ubuntu 24.04 LTS,服务器配置为:1核2GB内存,50GB磁盘空间

在开始之前,确保服务器满足以下要求:

  • Ubuntu 18.04或更高版本
  • 至少1GB可用内存
  • 10GB磁盘空间

安装步骤

第一步:一键安装K3s

# 使用国内镜像源加速安装curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

这个命令会完成以下操作:

  • 下载K3s二进制文件(约100MB)
  • 安装并启动K3s服务
  • 配置 kubectl 命令行工具
  • 设置必要的系统服务

查看k3s服务状态和计算资源占用情况 top

top-k3s-server

第二步:验证安装

安装完成后,通过以下命令验证K3s是否正常运行:

# 检查K3s服务状态: active(running)systemctl status k3s# 查看集群节点信息: Ready control-planekubectl get nodes# 查看所有运行中的Podkubectl get pods -A

解决网络问题

K3s访问的镜像仓库默认为DockerHub,在云服务的网络环境下会遇到镜像拉取失败问题。可配置镜像加速器(换源):

# 创建镜像加速配置sudo mkdir -p /etc/rancher/k3ssudo cat > /etc/rancher/k3s/registries.yaml << EOFmirrors:  docker.io:    endpoint:      - "https://registry.cn-hangzhou.aliyuncs.com/"      - "https://mirror.ccs.tencentyun.com"  quay.io:    endpoint:      - "https://quay.tencentcloudcr.com/"  registry.k8s.io:    endpoint:      - "https://registry.aliyuncs.com/v2/google_containers"  gcr.io:    endpoint:      - "https://gcr.m.daocloud.io/"  k8s.gcr.io:    endpoint:      - "https://registry.aliyuncs.com/google_containers"  ghcr.io:    endpoint:      - "https://ghcr.m.daocloud.io/"EOF# 重启K3s服务使配置生效sudo systemctl restart k3s

如果K3s中仍然有镜像拉取失败,可以向我留言。

我在实操的过程中遇到问题:rancher/mirrored-pause:3.6镜像一直拉取失败,导致K3s服务状态异常。

实战案例:部署第一个应用

我已经在云服务上使用K3s部署了自己的微服务应用,包括Python Flask应用和Redis数据库,应用运行正常。

现在我们已经有了一个运行的K3s集群,让我们来部署一个简单的Nginx应用。

创建部署配置文件

首先创建Nginx的部署配置文件:

# nginx-deployment.yamlapiVersion:apps/v1kind:Deploymentmetadata:name:nginx-deploymentspec:replicas:2# 运行2个副本selector:matchLabels:app:nginxtemplate:metadata:labels:app:nginxspec:containers:-name:nginximage:nginx:1.25ports:-containerPort:80resources:requests:memory:"64Mi"cpu:"50m"limits:memory:"128Mi"cpu:"100m"

创建服务暴露应用

为了让外部能够访问Nginx,我们需要创建一个Service:

# nginx-service.yamlapiVersion:v1kind:Servicemetadata:name:nginx-servicespec:selector:app:nginxports:-protocol:TCPport:80# 服务端口targetPort:80# 容器端口type:LoadBalancer# 使用负载均衡器类型

部署应用

现在执行部署命令:

# 部署Nginx应用kubectl apply -f nginx-deployment.yamlkubectl apply -f nginx-service.yaml# 检查部署状态kubectl get deploymentskubectl get podskubectl get services

访问应用

部署完成后,通过以下命令获取访问地址:

# 查看服务详情kubectl get svc nginx-service# 如果使用LoadBalancer类型,会分配外部IP# 直接访问该IP的80端口即可curl http://<EXTERNAL-IP>:80

进阶功能:安装Kubernetes Dashboard

如果你喜欢图形化界面,可以安装Kubernetes Dashboard,需使用helm包管理工具,本文不做详细介绍。

Kubernetes Dashboard

总结

本文介绍了三个方面:

  1. 轻量级Kubernetes的选型方法:根据具体场景选择最合适的方案
  2. K3s的安装部署:在Ubuntu上快速搭建Kubernetes环境
  3. 应用部署实战:使用K8s配置文件部署和管理应用

K3s作为一款优秀的轻量级Kubernetes发行版,特别适合中小型项目的预生产环境搭建。它的轻量级特性让我们能够在有限的资源下享受到Kubernetes带来的便利,同时保持了生产环境的兼容性。

下一步建议:

  • 尝试部署你自己的微服务应用
  • 学习使用helm进行应用包管理
  • 基于K3s的CI/CD流水线实践

参考资料

  1. K3s官方文档,https://docs.k3s.io/
  2. Kubernetes官方文档,https://kubernetes.io/docs/
  3. Rancher中国镜像站,https://rancher-mirror.rancher.cn/
  4. K3s GitHub 仓库,https://github.com/k3s-io/k3s
  5. MiniKube GitHub 仓库,https://github.com/kubernetes/minikube
  6. MicroK8s GitHub 仓库,https://github.com/canonical/microk8s
  7. Kind GitHub 仓库,https://github.com/kubernetes-sigs/kind
在安装K3s的过程中,会遇到网络、运行时依赖等问题,欢迎与我进行问题交流。

最新文章

随机文章