Menci's Blog
念念不忘,必有回响
Kubernetes 是如何合并 YAML 配置的?

今天在更新一个以 StatefulSet 形式部署的服务时出现了一个诡异的问题:一个从 YAML 文件中被删掉的 env 环境变量,在应用 YAML 后的 StatefulSet 对象中仍然存在,导致 Pod 中的应用程序没有正常运行。

而出现问题的 StatefulSet 资源,唯一的不寻常之处是 —— 上次更新(apply -f)后进行了回滚(rollout undo)……

  label SRE, 云计算, Kubernetes
使用 Thanos 低成本构建存储于 Homelab 上的多服务 Prometheus 监控

Prometheus 是很常用的服务指标监控系统。通过 Prometheus,我们将线上服务暴露的指标收集存储到时序数据库中,通过 PromQL 来查询,并在 Grafana 中展示。但是,使用小型 VPS 部署的个人项目而言,要在运行业务的同时运行这样一整服务监控系统,无论是长期储存时序数据所占用的磁盘空间,还是执行 PromQL 查询所占用的 CPU 资源,都太为难一台小型 VPS 了。

而相对的,家里 Homelab 服务器上有成本低廉的存储空间和计算资源,只是难以保证在线率,对 Metrics 这种需要不间断记录数据的场景不太适合 —— 如何才能将二者相结合,在 VPS 上实时收集自身服务的指标数据,同步到 Homelab 上进行储存和查询呢?

  label Homelab, SRE, Metrics, Thanos, Prometheus
SLAAC 环境下的 IPv6 桥接与中继

IPv6 网络已经日渐普及,中国的绝大多数家庭宽带或校园网用户均可获得 IPv6 地址。对于手动组网的用户来说,可以使用与 IPv4 一样的方式,配置 IPv6 NAT 来让内网设备接入 IPv6 网络。但我们往往希望不使用 NAT,而是让内网设备可以获得全局可路由的公网 IPv6 地址。本文将从 IPv6 网络的原理入手,介绍如何配置 Linux 路由器,使得内网设备可以直接获得上层网络下发的 IPv6 地址,并同时使自定义路由与防火墙可用。

  label Linux, IPv6, 网络, 防火墙, 路由
基于 TPM 2.0 与 Secure Boot 的 LUKS 自动解密

为了保护用户数据,现代设备与操作系统往往都支持全盘加密的功能,其中最为典型的是 Microsoft Windows 的 BitLocker。它既可以对系统分区进行加密,又可以在确认引导过程可信的情况下,不需要用户交互即可自动解密,这利用到了 TPM 和 Secure Boot。而在 GNU/Linux 系统下,如果用常用的 LUKS 加密方案进行全盘加密,则需要在每次开机时输入密码。

本篇文章将参考 BitLocker 的做法,利用 Secure Boot 和 TPM 2.0 来实现 LUKS 全盘加密的自动解密。

  label SRE, Linux, 安全
使用 Proxmox Backup Server 备份 Proxmox VE 的客户机与宿主机

Proxmox VE 是一款功能强大且易于使用的虚拟化平台。在不依赖其它服务的情况下,Proxmox VE 即可设置灵活的备份策略,将客户机按时备份储存到指定的存储中。但 Proxmox VE 的一般备份方式不支持增量备份,也不支持备份宿主机本身。

本篇文章将介绍 Proxmox Backup Server 的安装与使用,它为 Proxmox VE 提供了增量备份、远程同步等高级功能。

  label Homelab, Proxmox, SRE, 虚拟化, 备份
使用 GitHub Actions 自动申请与部署 ACME SSL 证书

对于将 Web 服务部署在多个服务器与云服务的人来说,如何方便地申请并管理 SSL 证书,是一个值得思考的问题。我使用 GitHub Actions 来自动申请/续期 ACME SSL 证书,部署到各个云平台上,并在自己管理的服务器上定期拉取证书。

  label SRE, 云计算, CI / CD, SSL
在 x86 中实现用户态与系统调用

在现代操作系统中,应用程序的代码与内核代码的运行环境是隔离的,这被称为用户态与内核态。一般来说,用户态应用程序只能在进程内执行算法逻辑,无法直接访问内核态的数据,也无法执行操作硬件所需的特权指令,而是需要通过系统调用来与内核态交互,来执行各种对系统或硬件的操作。这样的设计保证操作系统可以对应用程序的行为有完全的控制,保障了系统的安全性与稳定性。

  label x86, 内核
Android 与 iOS 安全机制对比

本文曾为本人一门课程的期末报告,其中有些内容可能不够准确与全面,欢迎大家指正。

作为现代移动操作系统,Android 和 iOS 都有较为完善的安全机制。本文将从若干个方面分析对比其安全机制的异同。

  label 安全, Android, iOS