Dive into Knative Pod Autoscaler
Understanding the Knative Pod Autoscaler (KPA) and its scaling mechanisms
Recent content on ZengXu's BLOG
Understanding the Knative Pod Autoscaler (KPA) and its scaling mechanisms
Kubernetes v1.14.5 → v1.21.14 升级补遗及经验教训
Notes on Retriable Http Client (with Golang/Rust example
v1.14.5 - v1.21.14 Kubernetes 跨版本升级记录
Calico ➕ KubeOVN - providing restricted underlay network access for KubeVirt VMs
This post provides an overview of Admission Controllers in Kubernetes, including their implementation and usage. Third-party admission controllers can be integrated into kube-apiserver by implementing them as admission webhooks. Many policy engines have appeared in the community on top of admission webhooks. This post introduces two policy engines, OPA/Gatekeeper and Kyverno. Finally, it covers…
规范的 K8s APIVersion 往往会经历由 alpha 到 beta 最后到 stable 的过程,API 转换就成了应有之义。本文提供多版本 API 转换的最佳实践。本文详细讲述了基于 CRD 提供多版本 API 时的困境和解决办法,并提供了一个基于最佳实践的 Conversion Webhook Server 实现
apiserver-runtime 本身也是基于 k8s.io/apiserver 提供增强。当项目需要灵活定制策略时,就不可避免需要直接使用底层库。结果是,开发者除了要熟悉 k8s.io 库,还需要再学一套框架。那为什么不从一开始直接使用 k8s.io/apiserver?
理解 K8s apiserver 的最好方式就是自己动手实现同款
彻底而全面的梳理,甚至提供了复制即用的脚本和镜像…
全图文展示 apiserver aggregation 原理,彻底搞懂 APIService 和 custom apiserver 认证授权 (authn, authz)
本文实现了一个符合 Kubernetes REST 风格的极简 apiserver,代码量只有 500 行左右。无论是单独运行还是集成到 K8s 集群,它都支持 kubectl 增删改查操作。动手把玩这个 apiserver,可以很好理解 K8s apiserver aggregation 原理,以及 kubectl 与 apiserver 的交互机制
K8s CustomResourceDefinition (CRD) 为使用者提供了开箱即用的 REST API 拓展能力。使用方只需创建一份 CRD 声明,kube-apiserver 就会自动提供一套成熟的 HTTP REST API,并直接将 Custom Resources 存储到背后存储(通常是 etcd)中。本文由浅入深,先展示了 CRD 的基本使用方式、kubectl 与对应 Custom API 模块的交互原理,再深入探究 CRD 在 kube-apiserver 内部的实现原理,最后对其特性的利弊做了总结
Setting up a Kubernetes cluster with a newly deployed metrics server often results in the following error message: Failed to scrape node, err=Get https://172.18.0.3:10250/metrics/resource: x509: cannot validate certificate for 172.18.0.3 because it doesn't contain any IP SANs node=kind-worker . This can be frustrating. In this post, I will demonstrate how to solve this problem in KinD.
HTTP REST 缓存简述
HTTP REST API 通用设计思路
HTTP range request is a widely used feature when it comes to file resource. Besides covering basic concept of range request, this blog show how HTTP range request works in browsers. Behaviors of Chrome, FireFox and Safari are coverd. several sample HTTP servers written in Golang are used to trick browsers.
Running application in container as PID 1 is quite common today, shutdown application responsively and gracefully is hard. This article show how PID 1 behave in container and provides serveral ways to make container shutdown as we want.
在 SDN 网络环境中,由于 docker0 bridge MTU 1500 大于 Host MTU(如 1400),网络会出现好像没问题但实际有问题的情况。直观来说就是 ping 8.8.8.8 能通,但是网站打不开、apt update 卡住不动、更无法下载文件。本文将复现并教你如何解决该问题
Notes on secure communication (authentication and authorization) between Kubernetes components
Notes on generating a self-signed certificate using OpenSSL, CFSSL, and Golang
How to implement a Kubernetes validating admission webhook
容器运行时原理小综述
Dive into Open Container Initiative
优雅处理 Eureka 跨集群同步
扒一扒 Eureka 中的定时任务
自己动手,丰衣足食,利用开发板搭建本地 k8s 集群
注意 containerd namespace 概念
夏天盛极一时
Java & Go 并发编程对比
类型擦除(Type Erasure)其实潜藏着 2 层概念:对于 JVM 而言,泛型参数被擦除了;对于 Java 语言来说,泛型信息得到了很大程度保留
介绍 SpringBoot YAML 和 properties 的对应关系,以及 @ConfigurationProperties 与 @Value 差异
Regex group puzzles
软件工程师,目前从事 K8s、Cloud Native 相关开发,喜欢看书、写文、发呆。 微信(请注明来意)