Docker 镜像制作教程:减小镜像体积
· ☕ 10 分钟 · ✍️ 米开朗基杨
本文主要介绍了 Docker 镜像的多阶段构建,解释了静态链接和动态链接的区别,它们对镜像带来的影响,以及如何避免那些不好的影响。

Grafana 自定义主题
· ☕ 2 分钟 · ✍️ 米开朗基杨
本文展示了如何在不修改源码的情况下自定义 Grafana 主题。

Kubernetes 控制器的进化之旅
· ☕ 7 分钟 · ✍️ 米开朗基杨
本文描述了 Kubernets 控制器的工作原理,包括通过 Operator 来控制有状态应用,最后介绍了如何通过 OAM 来解耦运维与开发的职责。

Tcpdump 示例教程
· ☕ 12 分钟 · ✍️ 米开朗基杨
本文主要介绍了 tcpdump 的基本语法和使用方法,并通过一些示例来展示它强大的过滤功能。

nftables 基础教程:使用 nftables 作为防火墙
· ☕ 9 分钟 · ✍️ 米开朗基杨
上篇文章 给大家介绍了 nftables 的优点以及基本的使用方法,它的优点在于直接在用户态把网络规则编译成字节码,然后由内核的虚拟机执行,尽管和 iptables 一样都是基于

深入理解 Kubelet 中的 PLEG is not healthy
· ☕ 8 分钟 · ✍️ 米开朗基杨
本文通过结合源代码,详细解释了 PLEG 的工作原理和调用流程,最后提供了排障思路和规避方法。

使用 buildx 构建多平台 Docker 镜像
· ☕ 7 分钟 · ✍️ 米开朗基杨
本文带大家了解了在不同的 CPU 架构上运行软件的挑战性,以及 buildx 如何帮助我们解决了其中的一些挑战。

并发与并行的区别
· ☕ 4 分钟 · ✍️ 米开朗基杨
通过漫画告诉你并发与并行的区别,故事原型来自 Go 语言创始人之一 Rob Pike 的一篇演讲。