NOTE

使用 cert-manager 管理 ingress-nginx 证书

文章目录 概述 环境部署安装 ingress-nginx cert-manager 部署测试应用 部署 deployment 服务 部署 ingress 资源 测试访问 dns 验证 http01 验证 dns01 验证 ...

在 Go 中使用 mmap 映射文件到内存

目录 mmap 系统调用 在 Go 中使用 mmap mmap 系统调用 Linux 支持通过 mmap系统调用 将文件映射到内存中,然后我们读写映射之后的虚拟内存就可以了,不用再用 write/read 系统调用读写文件。系统会将我们对内存读写 flush 到文件中,flush 是由系统自动执行的,我们也可以调用 Flush 强制刷盘。 void *mmap(void ad...

使用 pulumi 进行 K8s 配置管理与交付

目录 pulumi 入门 环境初始化 写交付代码 pulumi 是怎么工作的 pulumi 中的依赖 pulumi 常用命令 使用技巧 将 pulumi.StringOutput 转换为 pulumi.ID 结构化配置 配置 github action 运行 ...

Go 中的 errors.Is 与 errors.As

目录 概述 通过 fmt.Errorf 来 wrap error errors.Is: 是否有错误 equal 理解与使用 errors.Is 实现 errors.As: 是否有错误类型匹配 理解与使用 errors.As 实现 Go 中的 Comparable ...

Golang profile 性能分析与运行时参数概述

目录 通过 pprof 与 trace 进行性能分析 profile 采集与分析 trace 采集与分析 GOMEMLIMIT 环境变量 automaxprocs 自动配置 GOMAXPROCS 参考 通过 pprof 与 trace 进行性能分析 官方文档 https://pkg.go.dev/net/http/ppr...

B-tree 的定义及使用

目录 B-tree 的定义 开箱即用的 btree 库 B-tree 的定义 参考维基百科《B-tree》的定义。一个度(order、degree)为 m 的 B-tree,其特点为: 每个节点最多有 m 个 children。 每个内部节点至少有 ⌈m/2⌉ 个 children(rounded up)。 root 节点至少有两个 children,除非是个叶子...

通过 patch 修改 Kubernetes 中的资源

目录 三种 patch 方式对比:json、merge、strategic json vs merge merge vs strategic 通过 kubectl patch 修改资源 K8s client 中使用 patch client-go 使用 patch controller-run...

controllerruntime 中的 cache 与 client 实现

目录 cache 问题概述 controllerruntime 的核心接口 Manager 接口 Cluster 接口 初始化过程 cache 初始化 client 初始化 informerCache 的 Get 接口 总结 cache 问题概述 近期我们需要...

Golang 中的 reflect 机制解析

目录 一个具体问题 反射相关类型 interface: eface 与 iface reflect.Type 接口 reflect.Value 结构体 解决具体问题 一个具体问题 最近遇到一个问题,在使用工具 gocsv 将一个 csv 文件反序列化为 struct 的时候,反序列出来的字符串都带有一个后缀 \...

阿里云的 cluster provider controller 是怎么设计的

目录 前言 整体架构概述 详细设计 provider 层设计 资源模型抽象 model controller 实现 context 上下文 总结 前言 最近在做公有云相关工作,也会写一些控制器,公有云配置较多,比较琐碎,写的时候发现有很多冗余,设计上也有一些欠缺,知道阿里云有一个 Cloud pr...