今天有幸看到一个设计方案,使用webhook来做资源高可用设计方案,这个设计方案本身不是多么优秀,但是webhook的使用方式挺有意思。具体设计方式如下:
这种使用方式可以用在其他方案设计中,但是这个使用也是有缺点,比如在大量频发资源创建情况,webhook的性能将会是一种瓶颈。因此在适当场景下使用。
webhook理解:可以比作编程代码中回调函数,而它不是函数而已一个http post的请求,来实现某些功能。
深入理解
k8s中提供自定义资源类型和自定义控制器,这个就是常见operator机制;还提供了动态准入控制,这种控制就是采用webhook方式实现,具体分两种方式,一种是验证性质,(validating admission webhook),另一种方式修改性质准入(mutating admission webhook),这两种方式都是资源持久化到etcd的时候进行验证与修改,
admission webhook
提到动态准入控制,在k8s api request lifecycle 中生效阶段