当前位置: 首页 > backend >正文

k8s从入门到放弃之k3s轻量级

k8s从入门到放弃之k3s轻量级

K3s 是一个由 Rancher Labs 开发的轻量级 Kubernetes 发行版,专为资源受限环境(如边缘计算、物联网、嵌入式设备等)设计。它在保持与标准 Kubernetes 兼容的同时,大幅简化了安装和配置流程,并减少了资源消耗。

k3s特性

  • 轻量级:二进制文件小于 40MB,内存占用低,适合小型设备或边缘节点。
  • 易于安装: 单个二进制文件即可运行整个控制平面,支持一键安装脚本。
  • 兼容 Kubernetes API:完全兼容原生 Kubernetes API,可以使用 kubectl 和 Helm 等工具。
  • 集成组件:自带 SQLite 作为默认数据存储(也可替换为 etcd、MySQL、PostgreSQL 等)
  • 适用于集群:支持多节点集群部署,适合构建边缘计算或多云架构。
  • 安全机制:提供基于角色的访问控制(RBAC)、TLS 认证等安全功能。

架构预览

控制平面组件:k3s server

  • 包含 kube-apiserver、kube-controller-manager、kube-scheduler、cloud-controller-manager。
  • 默认使用 SQLite 存储集群状态(可选外部数据库)。

工作节点组件:k3s agent

  • 运行 kubelet、kube-proxy、flannel(网络插件)和 containerd。

容器进行时:

  • 默认使用 containerd,也支持 Docker。

k3s部署

环境规划

集群角色IP地址系统配置
server192.168.0.8Rocky2C4G50G
agent192.168.0.9Rocky2C4G50G

关闭swap分区

swapoff -a && \
sed -ri 's/.*swap.*/#&/' /etc/fstab

添加阿里云仓库

yum install -y yum-utils && \
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装containerd软件包

yum install containerd.io-1.6.20-3.1.el9.x86_64 -y

生成containerd配置文件

containerd config default | tee /etc/containerd/config.toml

启用Containerd Cgroup用于限制容器资源使用量,如CPU、内存资源

sed -i 's#SystemdCgroup = false#SystemdCgroup = true#' /etc/containerd/config.toml

替换文件中pause镜像的下载地址

sed -i 's#sandbox_image = "registry.k8s.io/pause:3.6"#sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"#' /etc/containerd/config.toml

配置镜像加速器

 [plugins."io.containerd.grpc.v1.cri".registry]config_path = "/etc/containerd/certs.d"

创建目录

mkdir -p /etc/containerd/certs.d/docker.io

在目录下创建host.toml,在文件中定义加速器

[host."https://docker.1ms.run"]capabilities = ["pull","resolve","push"]skip_verify = true

在k3s环境中,kubelet通过 containerd.sock 文件与 containerd 进行通信,对容器进行管理,指定contaienrd套接字文件地址

cat <<EOF | tee /etc/crictl.yaml
runtime-endpoint: unix:///var/run/containerd/containerd.sock
image-endpoint: unix:///var/run/containerd/containerd.sock
timeout: 10
debug: false
EOF

启动containerd

systemctl enable containerd --now

在k3s server上执行

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

k3s集群添加work节点

[root@localhost ~]# cat /var/lib/rancher/k3s/server/node-token
K109f7c6ba7bb81c93a60a6495f3388f79d79d4ee895da2522e9c6f0536ed9ba303::server:8d07388bf8c7093716978afd01347df2

在agent执行

curl -sfL https://get.k3s.io | K3S_URL="https://192.168.0.8:6443" K3S_TOKEN=K109f7c6ba7bb81c93a60a6495f3388f79d79d4ee895da2522e9c6f0536ed9ba303::server:8d07388bf8c7093716978afd01347df2 sh -
http://www.xdnf.cn/news/14061.html

相关文章:

  • 第四届智能电网与能源系统国际学术会议(SGES 2025)
  • Hive 序列化与反序列化:数据的 “打包“ 与 “拆箱“ 艺术
  • Angular入门的环境准备步骤工作
  • RabbitMQ缓存详解:由来、发展、核心场景与实战应用
  • HarmonyOS 5中UniApp的调试步骤
  • 宝塔面板如何关闭https强制跳转http/https共存?
  • 【大模型推理学习】flashMLA (二)
  • AWS Well-Architected Framework详解
  • 影刀学院课程地图导航汇总
  • 第18篇:数据库中间件架构中的服务治理与限流熔断机制设计
  • 使用RAG的思想进行PPT生成的框架思路-SlideCoder
  • codeforces 274D. Lovely Matrix
  • JAVA_强制类型转换:
  • Python测试框架库之pytest使用详解
  • 基于Qt的app开发第十四天
  • linux环境配置Go运行环境
  • 缩小 IEEE 会议论文 LaTeX 模板标题、作者信息和正文的间距
  • 零基础实战:用 Docker 和 vLLM 本地部署 bge-reranker-v2-m3 重排序模型
  • day65—回溯—单词搜索(LeetCode-79)
  • Django全栈开发实战与架构思考
  • 栈与队列:数据结构优劣全解析
  • Vue3 + Element Plus 获取表格列信息
  • DIPLOMAT开源程序是基于深度学习的身份保留标记对象多动物跟踪(测试版)
  • 【论文解读】START:自学习的工具使用者模型
  • Objective-c Block 面试题
  • 龙虎榜——20250613
  • 2025国家卫健委减肥食谱PDF完整版(免费下载打印)
  • Vue3 + Element Plus中el-table加载状态分析
  • 高频面试之10 Spark Core SQL
  • 深入解析 Python 的 socket 库:从基础通信到网络编程实战