从零搭建一个单节点 K8S 可观测实验室(一):从 Ubuntu 24.04 开始

发布时间:2026/8/28 17:29:03

从零搭建一个单节点 K8S 可观测实验室(一):从 Ubuntu 24.04 开始
最近准备把前段时间自己搭过的一套环境整理成系列文章从零搭建一个单节点 K8S 可观测实验室。这个系列不是为了搭一个生产级 Kubernetes 集群也不是为了追求复杂架构而是想从一台普通的本地虚拟机开始逐步搭出一个可以长期使用的个人技术实验室。它可以用来研究 Kubernetes、Docker、Linux 网络、可观测系统、CI/CD也可以用来验证一些平时在文档里看到但没有真正动手做过的东西。这一篇先从最基础的部分开始在 Windows 11 上使用 VirtualBox 安装 Ubuntu 24.04 Server 虚拟机。一、为什么要搭一个单节点 K8S 可观测实验室很多技术概念单独看文档时好像能理解但真正要把它们串起来就会发现中间有很多断点。比如 Kubernetes 负责运行应用Prometheus 负责采集指标Grafana 负责展示Loki 负责收集日志Tempo 负责链路追踪OpenTelemetry 负责把应用里的观测数据送出来。这些组件单独看都不算难但真正有价值的是把它们连成一条完整链路应用运行在 Kubernetes 里 - 产生指标、日志、Trace - 被采集、存储、查询、展示 - 帮助我们观察系统、定位问题、验证改动所以我想搭一个小型实验室把这些东西放在同一个环境里慢慢研究。单节点的好处是成本低、可控、方便重装。即使搭坏了也可以直接删掉虚拟机重来。对个人学习和技术验证来说这种环境反而很合适。二、这个系列大致会包括什么这个系列后续大致会围绕几个方向展开具体内容可能会根据实际搭建过程调整。大致包括在 VirtualBox 里安装 Ubuntu 24.04 Server在 Ubuntu 上安装单节点 Kubernetes安装 Prometheus Grafana观察集群指标安装 Loki Fluent Bit收集 Kubernetes 日志安装 Tempo OpenTelemetry跑通最小链路追踪 Demo接入 Jenkins 或 GitHub Actions尝试 CI/CD 流程做一些简单压测、告警和故障验证总结这个实验室如何用于后续研究、表达和技术积累这里不会一开始就追求“大而全”而是尽量从一个能跑起来、能看见现象、能反复实验的环境开始。三、这个实验室后续还能用来做什么虽然这个系列的主线是 Kubernetes 和可观测但这台虚拟机后续其实可以扩展出很多方向。1. 从虚拟机到容器再到 Kubernetes这个环境本身就包含了一条很典型的技术链路Windows 11 宿主机 - VirtualBox 虚拟机 - Ubuntu 24.04 Server - containerd / Docker - Kubernetes Pod通过这条链路可以顺着理解虚拟机、Linux、容器和 Kubernetes 之间的关系。比如VM 和容器到底有什么区别Docker 和 Kubernetes 是什么关系容器里的 root 和宿主机 root 是不是一回事privileged 容器为什么会带来安全风险这些问题光看概念容易模糊自己搭一个环境之后就可以慢慢实验和验证。2. 学习 Kubernetes 配置、权限和安全边界单节点环境虽然不是生产环境但非常适合学习 Kubernetes 的基础资源和权限模型。比如 Pod、Service、ConfigMap、Secret、Volume、Namespace、ServiceAccount、RBAC、Security Context 等都可以在这个环境里反复尝试。尤其是权限相关内容平时看起来比较抽象但实际操作后会更容易理解什么情况下容器权限不够什么情况下权限又给得太大为什么生产环境要限制 privileged 容器和 HostPath 挂载。3. 增加网卡后可以继续研究网络如果后面给虚拟机增加更多网卡还可以继续研究 Linux 网络和 Kubernetes 网络。比如 NAT、Host-Only、Bridge、路由表、iptables/nftables、tcpdump 抓包、CNI、Service 访问路径等都可以在这个基础环境上继续展开。如果进一步深入高性能网络方向还可以把它和 SR-IOV、DPDK、HugePages、CPU 亲和性、NUMA 等概念关联起来。当然VirtualBox 本身不是做高性能网络实验的最佳环境。如果真的要研究 DPDK、SR-IOV 或网卡直通后面最好还是使用物理机、KVM/QEMU 或更专业的虚拟化环境。但作为入门和概念验证这个实验室已经足够有价值。4. 有 GPU 后可以扩展到 AI 部署如果后面有合适的 GPU 资源还可以把这个实验室扩展到 AI 应用部署。比如部署一个简单的模型 API、Embedding 服务、Ollama、vLLM 或其他推理服务再配合 Prometheus、Grafana、日志和 Trace 去观察它的运行状态。GPU 资源调度、NVIDIA Container Toolkit、Kubernetes Device Plugin、显存监控这些内容也可以作为后续扩展方向。不过 GPU 相关实验对硬件和虚拟化环境要求更高VirtualBox 并不是最理想的 GPU 透传方案。所以第一阶段还是先把 Linux、Kubernetes、可观测和 CI/CD 这条主线跑通。四、实验环境说明本文使用的环境是宿主机Windows 11 虚拟化软件Oracle VirtualBox 虚拟机系统Ubuntu 24.04 LTS Server虚拟机配置建议CPU2 核 内存4GB 起步 硬盘50GB 以上建议 100GB我这里直接给了 100GB 硬盘空间主要是为了避免后面安装 Kubernetes 镜像、Prometheus、Loki、Tempo 等组件后空间不够还要再折腾扩容。Ubuntu 这里选择 24.04 LTS而不是追最新版本。原因很简单这个实验室的重点是学习 Kubernetes 和可观测系统底层操作系统先选择一个稳定的 LTS 版本更合适。五、下载并安装 VirtualBox先到 VirtualBox 官网下载 Windows 版本安装包https://www.virtualbox.org/wiki/Downloads安装完成后建议使用管理员模式启动 VirtualBox。这样后面创建虚拟机、配置 Host-Only 网络时可以减少一些权限相关的问题。六、下载 Ubuntu 24.04 Server ISO到 Ubuntu Server 官网下载 Ubuntu 24.04 LTS Server ISOhttps://ubuntu.com/download/server本文使用的是类似下面这样的 ISO 文件ubuntu-24.04.4-live-server-amd64.iso下载完成后先放在一个固定目录里备用。七、创建 Ubuntu 虚拟机打开 VirtualBox选择菜单控制 - 新建填写虚拟机基本信息名称Ubuntu24.04S 文件夹默认或者自己指定一个目录 虚拟光盘选择刚才下载的 ubuntu-24.04.4-live-server-amd64.iso 操作系统版本Ubuntu 24.04 LTS这里有一个比较重要的选项继续进行无人值守安装建议取消勾选。无人值守安装虽然方便但有时候容易引入一些不符合预期的配置。对于实验环境来说手动安装一遍反而更稳也能顺便熟悉 Ubuntu Server 的安装流程。八、指定虚拟硬件点击“指定虚拟硬件”。建议配置内存4096 MB 处理器2Kubernetes 和后面的可观测组件都比较吃资源尤其 Prometheus、Grafana、Loki、Tempo 都跑起来之后内存太小会比较难受。如果电脑资源允许内存给 4GB 起步会比较合适。九、指定虚拟硬盘点击“指定虚拟硬盘”。硬盘空间可以按自己情况设置。我这里设置成100 GB如果你的电脑磁盘空间比较紧张也可以先给 50GB。设置完成后点击“完成”。十、配置第二块网卡Host-Only 网络虚拟机创建完成后不要急着启动。先点击设置 - 网络默认情况下网卡 1 一般是 NAT用于虚拟机访问外网。这里我们再启用一块网卡用于 Windows 宿主机通过 SSH 连接 Ubuntu 虚拟机。选择网卡 2配置如下启用网络连接勾选 连接方式仅主机Host-Only网络这样配置后虚拟机会有两类网络NAT 网络用于虚拟机访问互联网 Host-Only 网络用于宿主机 SSH 连接虚拟机这一步很重要。后面大部分操作都会通过 SSH 连接进去完成而不是一直在 VirtualBox 的控制台窗口里敲命令。十一、启动虚拟机并开始安装 Ubuntu点击“启动”。第一次启动时VirtualBox 可能会弹出一些键盘、鼠标捕获相关提示可以先看一下然后把通知清掉。进入 Ubuntu 安装界面后开始安装。十二、选择安装语言安装界面一般没有中文选项直接选择English回车继续。十三、是否更新安装器接下来会提示是否更新安装器。为了节省时间可以选择Continue without updating系统安装完成后我们后面会统一执行更新所以这里不更新也没关系。十四、选择键盘布局键盘布局保持默认即可。选择Done十五、选择安装类型这里选择Ubuntu Server如果你的磁盘或内存非常紧张也可以选择Ubuntu Server (minimized)不过 minimized 版本会少一些常用包后面可能需要自己补装。为了减少不必要的问题我这里选择标准的 Ubuntu Server。十六、配置网络网络配置页面一般不用改保持默认即可。选择Done十七、配置代理如果你的网络环境需要 HTTP 代理可以在这里填写代理地址格式类似http://proxy_ip_address:proxy_port例如http://192.168.1.1:8080如果不需要代理直接选择Done十八、配置 Ubuntu 镜像源默认镜像源一般可以直接使用。如果你在国内遇到下载速度慢或者连接失败也可以换成国内镜像源例如https://mirrors.tuna.tsinghua.edu.cn/ubuntu/配置完成后选择Done十九、磁盘分区配置磁盘布局保持默认即可。选择Done下一页会显示最终的磁盘分区配置也保持默认选择Done随后系统会提示这是一个破坏性操作会格式化虚拟硬盘。选择Continue这里格式化的是虚拟机自己的虚拟硬盘不会影响 Windows 宿主机硬盘。二十、创建用户接下来填写用户信息。我这里实验环境使用的是Your name: vboxuser Your servers name: vbox-ubuntu24-server Pick a username: vboxuser Choose a password: 123456 Confirm your password: 123456这里的123456只是本地实验环境的演示密码。真实环境不要使用这种弱密码更不要把弱密码机器暴露到公网。填写完成后选择Done二十一、是否启用 Ubuntu Pro这里选择Skip for now然后选择Continue二十二、安装 OpenSSH Server这一步非常重要。安装界面会问是否安装 SSH Server。用空格选中Install OpenSSH Server这里也可以导入 SSH key不过为了简化实验流程我这里暂时不导入后面直接用密码登录。选择Done二十三、选择 Server 可选组件这里一个都不用选。后面 Kubernetes、Prometheus、Grafana、Loki、Tempo 等组件我们都会自己安装和配置。直接选择Done二十四、等待系统安装完成接下来 Ubuntu 会正式开始安装。如果想看详细日志可以选择View full log安装完成后选择Reboot now二十五、重启前释放安装光盘重启时需要注意如果提示移除安装介质就在 VirtualBox 里释放 Ubuntu ISO 光盘。可以在 VirtualBox 菜单里找到类似设备 - 光驱 - 移除虚拟盘否则可能会再次进入安装界面。二十六、登录 Ubuntu Server重启完成后会进入 Ubuntu 登录界面。有时候登录界面上会夹杂一些系统日志输出看起来比较乱这个没关系按一下回车即可。看到类似提示vbox-ubuntu24-server login:输入用户名vboxuser然后输入密码123456登录成功后就会进入 Ubuntu Server 命令行环境。二十七、查找 Host-Only 网卡 IP 地址接下来需要找到虚拟机的 Host-Only 网络 IP用于 Windows 上的 SSH 连接。在 Ubuntu 里执行ip a s | grep 192.168我这台机器分到的地址是192.168.56.103你的地址可能不一样比如192.168.56.101 192.168.56.102 192.168.56.104只要是192.168.56.x这一类地址一般就是 VirtualBox Host-Only 网络地址。二十八、使用 SSH 登录 Ubuntu 虚拟机Windows 上可以直接使用 PowerShell 自带的 SSH也可以使用 PuTTY、MobaXterm、Tabby、Termius 等工具。这里我使用 PuTTY。PuTTY 下载地址https://putty.org/index.html打开 PuTTY 后在 Host Name 里填写刚才查到的 IP例如192.168.56.103端口保持默认22连接类型选择SSH如果想保存会话可以在 Saved Sessions 里填写一个名字例如VBox_Ubuntu24.04然后点击Save这样以后就不用每次都手动输入 IP 了。最后点击Open第一次连接时如果遇到 Host Key 验证提示点击Accept然后在登录提示后输入用户名login as: vboxuser再输入密码vboxuser192.168.56.103s password: 123456看到 Ubuntu 命令行提示符后就说明 SSH 登录成功了。后面大部分操作都可以在 SSH 终端里完成便于直接复制粘贴命令输出等内容。二十九、可选配置 HTTP 代理如果你的网络环境需要代理访问 GitHub、Docker Hub 或某些软件源可以配置 HTTP 代理环境变量。编辑/etc/profilesudo vi /etc/profile在文件最后追加export https_proxyhttp://proxy_ip_address:proxy_port export http_proxyhttp://proxy_ip_address:proxy_port export ftp_proxyhttp://proxy_ip_address:proxy_port export no_proxy127.0.0.1,localhost,192.168.56.0/24,192.168.31.0/24保存后执行source /etc/profile检查代理是否生效echo $http_proxy echo $https_proxy echo $no_proxy有些安装命令需要sudo默认情况下 sudo 可能不会保留当前用户的代理环境变量。建议使用visudo修改 sudoers 配置sudo visudo找到类似下面这一行#Defaults:%sudo env_keep http_proxy https_proxy ftp_proxy all_proxy no_proxy把前面的#去掉Defaults:%sudo env_keep http_proxy https_proxy ftp_proxy all_proxy no_proxy保存退出。注意不要直接随意编辑/etc/sudoers。如果 sudoers 文件格式写错可能会导致 sudo 无法使用。visudo会在保存前做语法检查更安全。三十、更新 Ubuntu 24.04 系统组件安装完成后先更新软件包索引sudo apt update然后升级已有组件sudo apt upgrade -y如果看到类似下面的提示The following upgrades have been deferred due to phasing: fwupd一般不用紧张。这是 Ubuntu 的 phased updates 机制表示部分更新正在分批推送。对于实验环境来说通常可以先忽略后面再更新即可。升级完成后可以重启一次虚拟机sudo reboot重启后再次用 PuTTY 登录即可。三十一、这一篇完成了什么到这里单节点 K8S 可观测实验室的第一步就完成了。我们已经完成了安装 VirtualBox下载 Ubuntu 24.04 Server ISO创建 Ubuntu Server 虚拟机配置 NAT Host-Only 双网卡手动安装 Ubuntu 24.04 Server启用 OpenSSH Server从 Windows 使用 SSH 登录 Ubuntu可选配置 HTTP 代理更新 Ubuntu 系统组件这一步看起来比较基础但它是后面所有实验的地基。后续 Kubernetes、Prometheus、Grafana、Loki、Tempo、OpenTelemetry、CI/CD 等内容都会建立在这台 Ubuntu Server 虚拟机上。下一篇开始就可以在 Ubuntu 24.04 上安装单节点 Kubernetes 了。

相关新闻

优化Java应用性能的五个实战技巧

优化Java应用性能的五个实战技巧

2026/8/27 23:50:07

性能优化是工程实践,不是玄学当你盯着VisualVM里那条几乎垂直上升的CPU曲线,或者GC日志里频繁出现的Full GC字样时,总希望有一种能一键解决所有问题的银弹。可惜,Java性能优化从来不是靠某个参数或某个框架就能搞定的。它是一场需…

javascript的动态this与动态绑定

javascript的动态this与动态绑定

2026/8/27 1:49:03

javascript是一门动态语言,最明显就是那个dynamic this。它一般都是作为函数调用者存在。在javascript,所有关系都可以作为对象的一个关联数组元素而存在。那么函数就是被掰成两部分储存于对象,一是其函数名(键)&#…

监视消息循环

监视消息循环

2026/8/26 7:54:01

我们讨论了消息循环是响应用户输入的根本,还提到了在WinForm中执行耗时操作是因为这个耗时操作与消息循环在同一个UI Thread上,导致不能处理用户的后续响应,造成程序假死。除此之外,还说到了Form中的WndProc方法,说这个…

张一鸣重仓Seed团队:字节跳动AI大模型战略的底层逻辑

张一鸣重仓Seed团队:字节跳动AI大模型战略的底层逻辑

2026/8/28 17:19:21

张一鸣把一半时间放在 Seed 团队这件事,看似是个人精力分配,本质上是在给字节跳动重新划定技术路线。创始人把时间投到哪里,哪里就是公司接下来十年的押注点。Seed 不是普通的业务部门,它承担的是大模型底座、AI 应用层和前沿算法…

基于微信小程序云开发的失物招领系统:从零到一实战指南

基于微信小程序云开发的失物招领系统:从零到一实战指南

2026/8/28 17:19:21

简介:云开发是一种将后端服务(如数据库、存储、计算)封装为即用型API的云计算模式,它通过提供免运维、弹性伸缩的云端资源,让开发者能聚焦于业务逻辑本身。其核心原理在于将传统服务器架构中的基础设施抽象为服务&…

AI软件工厂设计模式:构建可替换、可观察的AI应用

AI软件工厂设计模式:构建可替换、可观察的AI应用

2026/8/28 17:19:21

AI软件工厂设计模式这个话题,最近在技术社区里讨论明显变多。我把它拆成一条主线:AI并没有让设计模式失效,反而让设计模式重新回到工程实践的中心。很多人误以为设计模式是Java时代的产物,既然大模型能直接生成代码,还…

管道自动焊机十大品牌盘点:国产装备加速突围,多场景选型指南

管道自动焊机十大品牌盘点:国产装备加速突围,多场景选型指南

2026/8/28 17:19:21

导语随着化工、医药、液冷数据中心、航空、市政水处理、长输油气等行业管路建设标准持续提升,管道自动焊机逐步替代传统人工氩弧焊,成为保障焊缝探伤合格率、稳定施工产能的核心装备。目前市场品牌分为进口高端精密管线设备、国产工程管道设备、国产洁净…

视频世界模型如何突破像素限制?SCoPE射线空间重写位置关系

视频世界模型如何突破像素限制?SCoPE射线空间重写位置关系

2026/8/28 17:19:21

视频世界模型近年来成为生成式 AI 里被讨论最多也最容易被误解的方向之一。它不只是视频生成模型,还承担着预测物理运动、理解空间关系、模拟交互结果的任务。比如,给定一段车辆行驶视频,视频世界模型要能预测下一秒障碍物是否靠近&#xff1…

win10打印机不能共享报0x0000011b/0x00000709修复工具合集分享 ,亲测解决Windows打印机共享报错

win10打印机不能共享报0x0000011b/0x00000709修复工具合集分享 ,亲测解决Windows打印机共享报错

2026/8/28 17:09:18

先说说我的情况。公司大概十几个人,两台共享打印机,一台接在Win10的台式机上,一台接在Win11的笔记本上。本来用着一直正常,去年开始,陆陆续续有同事反映连不上打印机。 最常见的报错就是0x00000709,还有0x…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/27 11:10:02

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/27 7:25:23

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/28 7:34:42

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

基于Claude Code的开源AI求职框架:从职位搜索到Offer的全自动化闭环

基于Claude Code的开源AI求职框架:从职位搜索到Offer的全自动化闭环

2026/8/28 0:08:32

当AI助手能够独立完成从职位匹配、简历定制到面试准备的全链路求职流程时,求职不再是一场信息战,而是一场工程化战役。框架概述:本地运行的AI求职引擎这是一个构建在Claude Code之上的开源AI求职框架,核心理念是"在工作者的机…

Godot 4 仿 agar.io:相机缩放被 max_zoom 卡死,窗口越大球越小的根因与修复

Godot 4 仿 agar.io:相机缩放被 max_zoom 卡死,窗口越大球越小的根因与修复

2026/8/28 0:08:32

1. 问题现象 在 Godot 4 仿 agar.io 的 2D 项目中,相机缩放设计为「由球组整体尺寸决定」,世界可见高度恒定,窗口只作为视口裁剪。默认小窗口 1280x720 时相机高度正常;但窗口最大化到 2940x1912 后,视角被明显拉远、…

从软件测试大赛到实战:Java+Selenium自动化测试进阶指南

从软件测试大赛到实战:Java+Selenium自动化测试进阶指南

2026/8/28 0:08:32

1. 缘起:从校园到赛场,我的软件测试之路几年前,我还是一个在校园里对着Java课本和“Hello World”程序挠头的普通学生。软件测试对我来说,只是一个在开发流程末尾、用鼠标点点按钮的模糊概念。直到我偶然在学校的公告栏上看到了“…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/28 7:35:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/28 7:34:51

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/28 7:34:35

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…