云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

从 0 到 1 掌握 K3s:轻量级 Kubernetes 集群的快速部署

jxf315 2025-03-28 17:54:42 教程文章 25 ℃

Kubernetes(K8s)作为容器编排的标准,虽然功能强大,但对于资源受限的环境(如边缘计算、IoT 设备或开发测试环境)来说,其复杂性和资源占用可能过高。K3s 由 Rancher Labs 开发,是一个轻量级、简化版的 Kubernetes,专为低资源环境设计。本篇文章将从 0 到 1,带你快速掌握 K3s 的安装、配置及应用。



1. 为什么选择 K3s?


相比标准 Kubernetes,K3s 具有以下优势:

o 轻量级:单个二进制文件,内存占用小,适用于低资源环境。

o 内置 SQLite 支持:默认使用 SQLite 代替 etcd,简化部署。

o 集成常用组件:内置 Traefik、CoreDNS 等,减少额外配置。

o 适用于边缘计算:适配 ARM 架构,适合 Raspberry Pi、IoT 设备等。




2. 安装 K3s


2.1 在单节点上安装 K3s


在 Linux 服务器(Ubuntu/Debian/CentOS)上执行以下命令即可快速安装:

curl -sfL https://get.k3s.io | sh -

安装完成后,K3s 会自动启动,可以使用 kubectl 进行管理:

kubectl get nodes

2.2 在多节点集群中安装 K3s

1. 在主节点(Master)上安装 K3s:

curl -sfL https://get.k3s.io | sh -s - server --cluster-init

运行 cat
/var/lib/rancher/k3s/server/node-token 获取 token。


2. 在工作节点(Worker)上加入 K3s 集群:

curl -sfL https://get.k3s.io | K3S_URL="https://:6443" K3S_TOKEN="" sh -

运行 kubectl get nodes 查看节点是否成功加入集群。




3. 使用 K3s 部署应用


3.1 创建一个 Nginx 部署


使用 K3s 运行 Nginx 作为示例应用:

apiVersion: apps/v1

kind: Deployment

metadata:

name: nginx-deployment

spec:

replicas: 2

selector:

matchLabels:

app: nginx

template:

metadata:

labels:

app: nginx

spec:

containers:

- name: nginx

image: nginx:latest

ports:

- containerPort: 80

应用部署:

kubectl apply -f nginx-deployment.yaml

kubectl get pods

3.2 使用 Traefik 进行 Ingress 访问


K3s 默认集成了 Traefik 作为 Ingress 控制器,可以直接使用 Ingress 资源来暴露应用:

apiVersion: networking.k8s.io/v1

kind: Ingress

metadata:

name: nginx-ingress

spec:

rules:

- host: nginx.local

http:

paths:

- path: /

pathType: Prefix

backend:

service:

name: nginx-service

port:

number: 80

执行:

kubectl apply -f nginx-ingress.yaml





4. K3s 高级用法


4.1 配置 K3s 使用外部数据库(MySQL)


默认情况下,K3s 使用 SQLite 存储数据。要改为使用 MySQL,可以安装时指定:

curl -sfL https://get.k3s.io | sh -s - server --datastore-endpoint="mysql://user:password@tcp(192.168.1.100:3306)/k3s"

4.2 K3s + Helm 部署应用


安装 Helm:

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

使用 Helm 在 K3s 上部署 Prometheus:

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

helm repo update

helm install prometheus prometheus-community/kube-prometheus-stack





5. 总结


本篇文章介绍了 K3s 的特点、安装、基本应用部署及高级配置。如果你的应用场景是边缘计算、物联网或资源受限的服务器,K3s 是 Kubernetes 的绝佳替代方案。你是否已经开始使用 K3s?欢迎在评论区交流你的实践经验!

最近发表
标签列表