Archive

2024

2024-4-21: 在 K8s 中使用 keda 进行应用扩缩容


2024-4-6: 在 K8s 中使用原生 hpa 进行应用扩缩容


2024-4-3: 理解数据库事务 ACID


2024-3-30: Controller Runtime 使用 webhook


2024-2-10: 在 Go 中使用 mmap 映射文件到内存


2023

2023-11-9: Golang profile 性能分析与运行时参数概述


2023-10-7: B-tree 的定义及使用


2023-10-6: 通过 patch 修改 Kubernetes 中的资源


2023-9-20: 通过 Scheduler Plugins 扩展 K8s 调度器


2023-9-20: 阿里云的 cluster provider controller 是怎么设计的


2023-3-11: VSCODE IDE 快捷键


2023-3-8: 使用 metallb 为 loadbalance 类型的服务分配 ip


2023-3-2: 运行 Istio Bookinfo 示例应用


2023-3-2: 我的 2022


2023-2-11: CNI实现:flanneld hostgw backend 相关实现


2023-2-4: 体验 Calico BGP 网络模型


2023-2-3: 通过 Keepalived 实现应用高可用


2022

2022-12-20: CNI 实现:使用 Golang 配置网络设备


2022-12-19: CNI 实现:以 flannel 为例解析 CNI 插件的实现


2022-12-17: CNI 实现:K8s dockershim CNI 实现


2022-11-27: Helm 使用中的一些最佳实践


2022-11-22: 一些 K8s 中 yaml 资源配置的例子


2022-11-7: 容器 PageCache 使用过多,导致内存利用率较高


2022-10-24: 通过修改 Config 文件的方式修改容器启动参数


2022-10-1: 手动配置 K8s hostgw 网络


2022-10-1: K8s 框架中关于 pod 优雅退出的一些总结


2022-9-18: Linux Grep 正则表达式示例[转载]


2022-8-31: 解析 K8s 集群中的 Pod 驱逐机制


2022-8-27: flannel host-gw 网络概述


2022-8-26: 使用 kubeadm 部署一个 Kubernetes 集群


2022-8-20: 扩展 IPAM host-local 插件实现 IP 预留

"Openkruise 中实现 IP 预留的方式"


2022-8-20: Etcd 日志复制流程概述


2022-8-5: Go 语言 TCP Socket 编程[转载]


2022-7-31: Golang 中的 defer 关键字


2022-6-29: EtcdServer 架构及初始化


2022-6-23: Etcd 性能调优总结


2022-6-8: 通过 --force-new-cluster 实现 Etcd 容灾


2022-6-1: 通过 Learner 节点实现 Etcd 集群实时备份

"以 rke 环境为例"


2022-5-10: etcdctl snapshot 命令是怎么工作的

"snapshot save 实现细节分析"


2022-5-7: Etcd 中的 wal 处理流程


2022-3-26: K8s Service 中的 iptables 规则


2022-3-20: Etcd: sync wal 时间过长导致切主


2022-3-6: Ingress-nginx 原理、应用及灰度发布


2022-3-2: Etcd put 请求过程:EtcdServer 处理概述


2022-3-2: Etcd 监控之 Metrics 汇总


2022-2-10: Golang 反向代理 reverse proxy 示例


2022-2-6: Etcd raft 模块应用案例解析:raftexample


2022-1-3: Raft 在 Etcd 中的实现[转载]


2021

2021-12-18: 流式 gRPC 示例


2021-12-11: 《In search of an Understandable Consensus Algorithm》Etcd 论文简析


2021-11-18: too many open files 问题排查


2021-11-14: Etcd 超时:read-only request took too long to execute


2021-11-3: Etcd put 请求过程:clientv3 发送请求到 EtcdServer


2021-9-13: K8s Apiserver 中的存储层调用链路梳理

"参考《Kubernetes 源码剖析》"


2021-9-11: Cgroup 内存管理与容器内存监控


2021-8-28: 在本地安装 Etcd 集群进行测试


2021-8-28: Etcd 集群基础运维


2021-6-20: bbolt 初体验[转载]


2021-6-12: 使用 Context 设置 Http 请求超时


2021-5-22: awk 命令基础


2021-5-9: WAL 概述


2021-5-6: Golang TLS 编程


2021-4-12: 事件处理中的 DeletedFinalStateUnknown 是什么


2021-4-6: Statefulset 滚动升级实现


2021-4-2: tcp 协议的连接与断开


2021-4-1: flannel vxlan 工作原理分步骤详解


2021-4-1: 容器网络基础及 CNI 概述


2021-3-23: K8s 中的 Informer reflector 实现细节全解析


2021-3-14: Moby 代码中一个发布订阅模式的实现


2021-2-9: 一些 Golang 日常读写操作


2021-1-2: K8s Scheduler 及 Apiserver 是如何处理 binding 请求的


2021-1-1: 为 K8s 编写可测试代码


2020

2020-12-20: 实现文件分片传输的一个小例子


2020-12-17: 基于 CAS 操作实现无锁队列


2020-11-30: 多副本选主 LeaderElection 的实现


2020-11-27: cpuset/NUMA 相关知识


2020-11-27: 通过 Topology Manager 开启绑核功能


2020-11-27: K8s 里的 Client: Discovery 以及 Unstructured


2020-11-27: K8s Apiserver max-requests-inflight 流控实现


2020-11-27: Prometheus监控基础


2020-9-20: 关于 InClusterConfig 的一些知识


2020-9-19: 分布式系统:CAP 理论的前世今生[转载]


2020-9-19: 分布式系统:一致性模型[转载]


2020-8-22: Apiserver 问题排查: too old resource version


2020-8-21: Apiserver 问题排查: Too large resource version


2020-8-21: Apiserver 中缓存层 Cacher 的实现


2020-8-20: 使用 xfs_quota 实现磁盘容量隔离


2020-8-15: K8s 调度器 SchedulerCache 工作原理


2020-7-25: PV Controller 的本地 cache 及其 indexer


2020-7-18: 实现 K8s client-go 的监控


2020-7-18: Local volume provisioner 架构分析


2020-6-21: Kubelet 容器运行时/CRI/CNI 初始化


2020-6-6: 理解 K8s CSI 存储插件机制


2020-5-11: shell 运维命令集合


2020-5-1: 容器share pid 导致 restart 命令卡主


2020-4-7: linux 块设备 IO 栈浅析[转载]


2020-4-6: Golang 汇编入门-从输出 HelloWorld 说起[转载]


2020-3-25: 大概了解下 Golang 中的垃圾收集


2020-3-21: containerd runc docker 之间的关系


2020-3-21: 理解 Golang 中的 unsafe Pointer


2020-3-21: K8s 队列之基本队列实现


2020-3-21: K8s 队列之基本 Controller 设计模式


2020-3-15: Golang 内存框架[转载]


2020-3-15: 理解 Golang 调度器[转载]


2020-3-12: Golang 使用 channel 进行同步控制


2020-3-2: K8s 中的 ReplicaSet 源码解析


2020-2-28: K8s1.9 版本 Scheduler 调度流程概述


2020-2-25: centos 配置静态 ip


2020-2-25: 关于 K8s informer 的基本概念与原理


2020-2-22: 优先级队列及 Golang 中的实现


2020-2-22: K8s Scheduler framework 调度流程概述


2020-2-21: 环形链表


2020-2-9: Golang 内存管理概述[翻译]


2020-1-16: K8s 资源控制概述

"cpu与mem的request与limit"


2020-1-6: K8s 中的 worker queue 并发控制模型

"K8s 中的设计模式"


2019

2019-12-17: gRPC Protobuf 语法介绍


2019-12-16: gRPC 示例:实现发布订阅模式


2019-12-14: Kubelet 概述


2019-11-7: Linux IPtables 规则基础


2019-10-25: 实现自己的 device mapper[翻译]

"这是一篇翻译"


2019-10-13: 回溯法合集

"关于回溯法题目的总结"


2019-10-5: have a fever


2019-10-4: Kubelet volume manager 工作原理概述


2019-9-23: K8s Statefulset 控制器设计


2019-9-21: 从宏观角度看 Golang map 实现[翻译]


2019-9-17: K8s 调度器中 findNodesThatFit 实现

"scheduler中的细节"


2019-9-10: K8s 中的 wait.Until

"K8s中一些设计模式"


2019-8-20: K8s volume expand 控制器介绍

"由点到线熟悉 K8s Controller Manager"


2019-8-20: Scheduler 调度 Pod 过程

"Scheduler 调度 Pod 的主线流程,及队列管理"