云原生
71
制作 Python Docker 镜像的最佳实践
Kubernetes 的 NameSpace 无法删除应该怎么办?
K8s 生产最佳实践 - 限制 NameSpace 资源用量
K8s 如何启用 cgroup2 支持?
Containerd 如何配置 Proxy?
K8S Pod Sidecar 应用场景之一 - 加入 NGINX Sidecar 做反代和 web 服务器
如何通过 kubectl 进入 node shell
通过 Traefik Hub 暴露家里的网络服务
基于 Traefik 如何实现 path 末尾自动加斜杠?
基于 Traefik 如何实现向后转发自动去掉前缀?
More...
可观察性
54
使用 Grafana 统一监控展示 - 对接 Zabbix
使用 Prometheus 配置 SLO 监控和告警
「译文」软件自动化发布管理的三个步骤
「译文」常见的 SLO 陷阱以及如何避免它们
「译文」什么是 SRE(站点可靠性工程师)?SRE 是做什么的?
七步成诗 - 快速创建有效 SLO
Prometheus 性能调优 - 水平分片
Prometheus AlertManager 生产实践 - 直接根据 to_email label 发 alert 到对应邮箱
如何精简 Prometheus 的指标和存储占用
「译文」Prometheus 查询语言 PromQL 简介
More...
云计算
32
在 K8s 集群中创建 DERP 服务器
Terraform 系列 -Terraform 项目的典型文件布局
WireGuard 系列文章(九):基于 K3S+WireGuard+Kilo 搭建跨多云的统一 K8S 集群
WireGuard 系列文章(八):基于 WireGuard 的 K8S CNI Kilo 简介
「译文」什么是 Terraform?
WireGuard 系列文章(七):使用 WireGuard 和 Netmaker 创建 Full Mesh 网络
WireGuard 系列文章(六):Netmaker 安装
WireGuard 系列文章(五):Netmaker 简介 - 创建和管理 WireGuard 网络的平台
WireGuard 系列文章(四):WireGuard 快速上手
WireGuard 系列文章(三):WireGuard 安装
More...
Java
23
为什么 java 容器推荐使用 ExitOnOutOfMemoryError 而非 HeapDumpOnOutOfMemoryError ?
8 种 Java 内存溢出之八 -Kill process or sacrifice child
8 种 Java 内存溢出之七 -Requested array size exceeds VM limit
8 种 Java- 内存溢出六 -Out of swap space?
8 种 Java- 内存溢出之五 -Unable to create new native thread
8 种 Java- 内存溢出之四 -Metaspace
案例 3: 某财险公司运行时的 Perm 区内存溢出分析
8 种 Java- 内存溢出之三 -Permgen space
案例 2: 某寿险公司核心系统 GC 开销超限问题分析
8 种 Java- 内存溢出之二 -GC overhead limit exceeded
More...
DevOps
19
将 git 仓库从 submodule 转换为 subtree
「译文」使用 submodule 和 subtree 管理 Git 项目
「译文」Git subtree: Git submodule 的替代品
「译文」如何在 Ansible 中复制多个文件和目录
「译文」使用 Caddy 来自动化 HTTPS
Ansible 学习笔记 - 批量巡检站点 URL 状态
Caddy- 用 Go 写的新一代可扩展 WebServer
Ansible 学习笔记 - 定位主机和组的模式
Git + Jenkins 自动化 NGINX 发布简易实现
在 NGINX 中根据用户真实 IP 进行限制
More...