K3s单节点集群部署指南:轻量级Kubernetes实践
1. K3s单节点集群部署概述K3s作为轻量级Kubernetes发行版已经成为开发者本地测试和小型生产环境的首选方案。相比完整K8s动辄数GB的内存消耗K3s仅需512MB即可运行这种瘦身特性使其在边缘计算和资源受限场景中表现尤为突出。我最近在Rocky Linux 9.2系统上完成了最新版K3s的部署验证整个过程仅耗时8分钟比传统K8s集群节省了约75%的配置时间。单节点架构虽然牺牲了高可用性但对于开发测试、CI/CD流水线等场景已经足够。这种部署模式下所有控制平面组件API Server、Controller Manager、Scheduler等与工作节点共享同一台主机通过containerd替代Docker作为默认容器运行时进一步降低了资源开销。值得注意的是K3s v1.26之后版本对ARM架构的支持更加完善这使得在树莓派等设备上搭建微型K8s环境成为可能。2. 环境准备与系统配置2.1 硬件需求与操作系统选择最低配置要求CPUx86_64或ARM64架构双核内存1GB建议2GB以上磁盘20GB可用空间推荐操作系统版本# 查看系统版本示例 cat /etc/os-release我选择Rocky Linux 9.2作为基础系统主要考虑其与RHEL的二进制兼容性以及长期支持周期。关键配置步骤如下关闭Swap空间K8s的硬性要求sudo swapoff -a sudo sed -i / swap / s/^\(.*\)$/#\1/g /etc/fstab设置正确的hostname解析sudo hostnamectl set-hostname k3s-master echo 127.0.0.1 $(hostname) | sudo tee -a /etc/hosts加载内核模块sudo modprobe overlay sudo modprobe br_netfilter2.2 网络与防火墙配置Calico网络插件对内核参数有特定要求需提前配置cat EOF | sudo tee /etc/sysctl.d/k3s.conf net.bridge.bridge-nf-call-ip6tables 1 net.bridge.bridge-nf-call-iptables 1 net.ipv4.ip_forward 1 EOF sudo sysctl --system如果使用Firewalld需放行必要端口sudo firewall-cmd --permanent --add-port6443/tcp # Kubernetes API sudo firewall-cmd --permanent --add-port8472/udp # Flannel VXLAN sudo firewall-cmd --permanent --add-port10250/tcp # Kubelet API sudo firewall-cmd --reload3. K3s核心组件安装3.1 一键安装脚本解析官方提供的安装脚本实际上完成了以下关键操作curl -sfL https://get.k3s.io | sh -该脚本执行流程检测系统架构和发行版安装k3s-selinux策略包仅RHEL系下载k3s二进制和镜像到/var/lib/rancher/k3s生成systemd服务单元文件启动k3s服务并等待就绪高级安装选项示例禁用Traefik并使用外部数据库curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC--disable traefik --datastore-endpoint mysql://username:passwordtcp(hostname:3306)/database sh -3.2 关键组件定制配置通过环境变量可覆盖默认配置export INSTALL_K3S_VERSIONv1.26.4k3s1 export INSTALL_K3S_SKIP_STARTtrue export INSTALL_K3S_SYMLINKforce安装后配置文件位置主配置/etc/rancher/k3s/config.yamlkubeconfig/etc/rancher/k3s/k3s.yaml服务日志journalctl -u k3s -f4. 集群验证与组件管理4.1 基础功能测试获取节点状态kubectl get nodes -o wide验证核心Pod运行状态kubectl get pods -A -o wide测试服务部署示例部署Nginxkubectl create deployment nginx --imagenginx:alpine kubectl expose deployment nginx --port80 --typeNodePort kubectl get svc nginx4.2 插件管理实践K3s内置组件管理命令# 查看已安装组件 kubectl get deployments -n kube-system # 手动安装Metrics Server kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml持久化存储配置示例使用local-path-provisionerapiVersion: v1 kind: PersistentVolumeClaim metadata: name: local-path-pvc spec: accessModes: - ReadWriteOnce storageClassName: local-path resources: requests: storage: 2Gi5. 运维优化与故障排查5.1 性能调优参数启动参数优化示例# /etc/systemd/system/k3s.service.d/override.conf [Service] ExecStartPre-/sbin/sysctl -w vm.max_map_count262144 ExecStart ExecStart/usr/local/bin/k3s server \ --kubelet-argconfig/etc/rancher/k3s/kubelet.config \ --kube-controller-manager-argnode-monitor-grace-period20s \ --kube-apiserver-argdefault-not-ready-toleration-seconds30内存限制配置防止OOMapiVersion: v1 kind: Pod metadata: name: memory-demo spec: containers: - name: memory-demo-ctr image: polinux/stress resources: limits: memory: 200Mi requests: memory: 100Mi5.2 常见问题解决方案问题1coredns持续CrashLoopBackOff# 检查日志 kubectl logs -n kube-system coredns-xxxxxx # 典型解决方案修复网络插件配置 kubectl edit configmap -n kube-system coredns问题2节点NotReady状态# 诊断步骤 journalctl -u k3s -n 100 --no-pager kubectl describe node node-name问题3镜像拉取失败# 配置私有仓库 mkdir -p /etc/rancher/k3s/ cat EOF /etc/rancher/k3s/registries.yaml mirrors: docker.io: endpoint: - https://mirror.ccs.tencentyun.com EOF systemctl restart k3s6. 生产环境进阶配置6.1 高可用方案实现虽然本文聚焦单节点但可通过以下方式扩展# 添加worker节点 K3S_URLhttps://server-ip:6443 K3S_TOKENnode-token sh -s - agent # 查看token位置 cat /var/lib/rancher/k3s/server/node-token多服务器控制平面配置# 第一个节点 curl -sfL https://get.k3s.io | sh -s - server --cluster-init # 后续节点 curl -sfL https://get.k3s.io | sh -s - server --server https://first-node:64436.2 监控与日志方案内置组件集成建议# 安装Prometheus Stack helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm install kube-prometheus prometheus-community/kube-prometheus-stack -n monitoring日志收集架构graph LR A[Fluent Bit DaemonSet] -- B[Loki] B -- C[Grafana Dashboard]重要提示生产环境务必配置定期etcd备份# 创建备份脚本 cat EOF /usr/local/bin/k3s-backup #!/bin/bash etcdctl --endpointshttps://127.0.0.1:2379 \ --cacert/var/lib/rancher/k3s/server/tls/etcd/server-ca.crt \ --cert/var/lib/rancher/k3s/server/tls/etcd/server-client.crt \ --key/var/lib/rancher/k3s/server/tls/etcd/server-client.key \ snapshot save /backup/etcd-snapshot-$(date %Y%m%d).db EOF chmod x /usr/local/bin/k3s-backup # 设置定时任务 (crontab -l 2/dev/null; echo 0 3 * * * /usr/local/bin/k3s-backup) | crontab -

相关新闻

OFD文件乱码问题诊断与解决方案

OFD文件乱码问题诊断与解决方案

1. OFD文件乱码问题现象解析上周在Windows Server 2016上部署OFD在线预览服务时,遇到了令人抓狂的字体乱码问题。预览界面中所有中文内容都变成了"口口口"或完全无法识别的符号,而同一文件在本地OFD阅读器中却显示正常。这种"同文件不同表…

2026/10/15 0:31:12 阅读更多 →
新能源电网多能互补调度与储能系统优化实践

新能源电网多能互补调度与储能系统优化实践

1. 项目背景与核心价值 风电、光伏等可再生能源的波动性和间歇性一直是制约其大规模并网的关键瓶颈。我在参与某省级电网调度系统升级时,曾遇到这样一个典型案例:某日午间光伏出力突然下降40%,导致区域电网出现功率缺额。而传统火电机组爬坡速…

2026/10/15 0:30:51 阅读更多 →
本地部署AI写作助手:Reply Better AI隐私优先的浏览器扩展实战指南

本地部署AI写作助手:Reply Better AI隐私优先的浏览器扩展实战指南

在浏览器里写邮件、填表单、回复评论时,是不是经常感觉词穷,或者希望有个助手能帮你润色一下?但一想到要把这些可能包含个人或公司信息的文本发送到云端AI服务,心里总有点不踏实。如果你也有这种对隐私的顾虑,同时又渴…

2026/9/25 10:59:03 阅读更多 →

最新新闻

IDEA报错无效的目标发行版本:JDK版本冲突排查与解决

IDEA报错无效的目标发行版本:JDK版本冲突排查与解决

1. 问题初判:这个报错到底在说什么“无效的目标发行版本”这行字,几乎每个用IDEA写过Java的人都在某个时刻撞见过。它通常出现在你点下运行按钮、或者执行Maven编译的那一瞬间,控制台红字一闪,构建直接中断。很多人第一反应是去改…

2026/10/15 0:31:30 阅读更多 →
傅里叶梅林变换MATLAB代码:旋转缩放配准的工程实现与避坑指南

傅里叶梅林变换MATLAB代码:旋转缩放配准的工程实现与避坑指南

简介:这份MATLAB参考代码围绕傅里叶梅林变换展开,面向图像处理、计算机视觉方向的学习者与研究者,用于解决图像旋转不变性分析与配准问题。资源包共6个文件,以5个bmp测试图像和1个m脚本为主,压缩包约152KB,…

2026/10/15 0:31:30 阅读更多 →
多目标函数优化实战:NSGA-II 帕累托前沿与参数调优避坑指南

多目标函数优化实战:NSGA-II 帕累托前沿与参数调优避坑指南

简介:本资源面向数学建模竞赛选手、高校学生及科研人员,聚焦多目标函数优化这一复杂优化任务,帮助读者在MATLAB环境中寻找帕累托最优解集,处理多个相互冲突目标的权衡问题。压缩包共64个文件,以60个m脚本为核心&#x…

2026/10/15 0:31:30 阅读更多 →
OpenStack多版本混布导致nova-compute启动卡死的排查与修复

OpenStack多版本混布导致nova-compute启动卡死的排查与修复

说实话,OpenStack环境里最磨人的故障,不是那种直接狂刷ERROR的,而是进程明明活着、却什么也不干的类型。我今天要聊的,就是这个标题里的场景——openstack多版本部署导致nova-compute启动卡死。我前后在几套环境里碰到过类似情况&…

2026/10/15 0:31:30 阅读更多 →
最长公共子串算法详解:动态规划、滚动数组优化与Unicode处理

最长公共子串算法详解:动态规划、滚动数组优化与Unicode处理

最长公共子串长度这个题目,看起来人畜无害,背地里却栽过不少人。上周我帮一位朋友看代码,他信心满满地用动态规划写了一个求两个字符串公共子串的函数,结果拿"abc"和"ababc"一测,返回 1。问题出在…

2026/10/15 0:31:30 阅读更多 →
Spring Security实战:认证授权、过滤器链与SpringBoot集成全解析

Spring Security实战:认证授权、过滤器链与SpringBoot集成全解析

Spring Security这个名字,凡是用Java做过后端Web项目的朋友,基本都会在某一天撞上它。我印象很深,第一次接手一个带有登录权限的旧项目时,打开配置类看到一长串security的配置,先是懵了,再是改一个小需求就…

2026/10/15 0:29:25 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →