NOTE

在 controllerruntime 控制器中配置资源 webhook

目录 controllerruntime webhook 接口概述 controller 注册 webhook 自动签发证书 配置 webhook 不拦截自身 pod controllerruntime webhook 接口概述 K8s 支持 mutatingWebhookConfiguration 以及 validatingWebhookConfiguration 资...

使用 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 结构化配置 管理集群中已有资源 get 非 pu...

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 的时候,反序列出来的字符串都带有一个后缀 \...