K3s 轻量级 Kubernetes 完整解析:单二进制部署教程
【免费下载链接】k3sLightweight Kubernetes项目地址: https://gitcode.com/GitHub_Trending/k3/k3s
K3s 是 Rancher 团队打造的轻量级 Kubernetes 发行版,全部组件打包进一个二进制文件,内存占用低、启动快,特别适合边缘计算、IoT 设备和资源受限环境的集群部署。
一句话说清 K3s 是什么
和 kubeadm 方案要手动拉起一堆组件不同,K3s 把 Kubernetes 控制面、etcd、容器运行时、网络插件统统内嵌进单个二进制。跑一条k3s server命令,你就拥有一个完整可用的集群:自带 Ingress 控制器、本地存储(local-path provisioner)、DNS 和指标服务。它和标准 Kubernetes 保持 API 兼容,kubectl用的就是原生命令,只是运维负担小得多。
3 步跑起来:从获取到启动的最短路径
1️⃣ 获取代码或二进制:
git clone https://gitcode.com/GitHub_Trending/k3/k3s仓库源码以 main.go 为总入口,也可以用Makefile里的构建目标自行编译。
2️⃣ 启动服务器节点:
sudo k3s server一条命令拉起 API Server、调度器、控制器和内置 etcd,集群状态默认写在/var/lib/rancher/k3s。
3️⃣ 客户端接入集群:
sudo k3s kubectl get nodesk3s内置了 kubectl 子命令,不用额外安装。worker 节点用k3s agent --server <服务器地址> --token <令牌>加入集群即可。
读懂核心代码:只讲最重要的几个模块
- main.go:程序总入口,把 server、agent、kubectl、etcd snapshot 等全部子命令注册成一个 CLI 应用。
- pkg/cli/:各子命令的命令行参数定义,
cmds/server.go里能看到 server 全部可用参数。 - pkg/daemons/:server 与 agent 两个守护进程的运行逻辑,是集群启动流程的主干。
- pkg/etcd/:内置 etcd 的封装,负责快照、恢复和 S3 远程备份。
- manifests/:随集群自动部署的组件清单,如 coredns、traefik、metrics-server。
想深挖细节,可直接看 docs/ 下的架构决策记录(adrs 目录)。
按需定制:常用配置项与自定义入口
K3s 的配置有三类入口:命令行参数、K3S_*前缀的环境变量、以及--config指定的 YAML 文件(默认可放/etc/rancher/k3s/config.yaml)。最常用的几项:
--token/K3S_TOKEN:节点加入集群的共享令牌,改它决定谁能接入集群。--data-dir/K3S_DATA_DIR:数据目录,改它决定集群状态、etcd 快照落在哪。--server-url:agent 连接服务器的地址,改它决定节点往哪上报。--cluster-cidr:Pod 网段,默认10.42.0.0/16,改它要避开已有网络。--service-cidr:Service 网段,默认10.43.0.0/16。--system-default-registry:私有镜像源前缀,离线环境拉镜像必配。--node-name:节点注册名,改它影响节点在集群中的名字。
每个参数基本都有同名环境变量,方便写进 systemd 服务里。
谁适合用 K3s:上手前必知的几件事
适合个人学习、CI 临时集群、边缘节点和小型生产环境;不适合需要完全自定义每个控制面组件的复杂场景。单节点模式下 etcd 没有副本,重要数据记得配好快照和 S3 备份(k3s etcd-snapshot save可手动触发)。延伸阅读推荐 docs/adrs/ 目录,里面记录了网络插件、证书轮换、Secrets 加密等设计细节,理解原理后再动手定制会更稳。
【免费下载链接】k3sLightweight Kubernetes项目地址: https://gitcode.com/GitHub_Trending/k3/k3s
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考