23 | 声明式API与Kubernetes编程范式
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了声明式API在Kubernetes编程中的重要性,并以Istio项目为例,阐述了声明式API在微服务治理方面的应用。作者首先对比了Docker Swarm的命令式命令行操作和Kubernetes的YAML文件操作,指出了命令式配置文件操作与声明式API的区别。随后,详细解释了kubectl apply命令的作用,以及其与kubectl replace命令的区别,强调了声明式API的重要性。接着,通过Istio项目的实例,阐述了声明式API在实际使用中的重要意义。文章还介绍了Kubernetes中的Dynamic Admission Control功能,以及Istio项目如何利用Initializer实现自动注入Envoy容器的操作。通过实例和技术原理的讲解,深入浅出地阐述了声明式API的概念及其在Kubernetes编程中的重要性。整篇文章突出了声明式API对Kubernetes编程范式的重要性,以及在微服务治理方面的应用,为读者提供了深入的技术理解和实践应用的指导。文章内容涵盖了Kubernetes编程范式的重要性、声明式API的应用、Istio项目的实际案例以及技术原理的讲解,为读者提供了全面的技术视角和实践指导。
《深入剖析 Kubernetes》,新⼈⾸单¥68
全部留言(61)
- 最新
- 精选
- 周龙亭是因为envoy提供了api形式的配置入口,更方便做流量治理
作者回复: 是的
2018-11-265127 - 虎虎❤️老师,用声明式api的好处没有体会太深刻。 如果在dosomething中merge出新的yaml,然后用replace会有什么缺点? 好像在这篇文章中仅仅提到声明式的可以多个客户端同时写。除此之外,还有其他优点吗? 也就是说修改对象比替换对象的优势在哪?
作者回复: istio不就是例子?系统里完全可以有好几个initializer在改同一个pod,你直接replace了别人还玩不玩了?
2018-10-151381 - 虎虎❤️kubectl apply 是通过mvcc 实现的并发写吗?
作者回复: 是啊
2018-10-16246 - swordholder有个疑问,在envoy-initializer的“控制循环”中获取新创建的Pod,这个Pod是否已经在正常运行了? Initializer 提交patch修改Pod对象,Kubernetes发现Pod更新,然后以“滚动升级”的方式更新运行中的Pod?
作者回复: 不会啊。注意看apiserver的流程图,initializer发生在admission阶段,这个阶段完成后pod才会创建出来。
2018-10-15345 - 混沌渺无极dynamic admission control有点像防火墙的DNAT,数据包即将进入路由表的瞬间被修改了目的地址,这样路由表就对数据包的修改[无感]。 patch就像多人使用git来进行文件的"合并型"修改。
作者回复: 就是这么回事儿
2018-10-16242 - DJH请教老师,Initializer和Preset都能注入POD配置,那么这两种方法的适用场景有何不同?
作者回复: preset相当于initializer的子集,比较适合在发布流程里处理比较简单的情况。initializer是要写代码的。
2018-10-15225 - huan又查了下envoy的设计,感觉它支持热更新和热重启,应该很适合声明式规则的开发范式,这可以看做一种优势,相比而言,nginx的reload需要把worker进程退出,比较面向命令
作者回复: 这确实是一个因素
2018-10-15523 - lucasunInitializer不是一直bata然后废弃了嘛,istio用的是MutatingAdmissionWebhook吧
作者回复: Istio 现在是admission hook。这部分功能变化太多了,最好是自己写个sidecar operator 来管理。
2020-03-03319 - AlexInitializer与新的pod 在git merge冲突了该怎么解决?
作者回复: 就不会注入成功了
2018-11-14218 - 羽翼1982所以这个问题的答案是什么呢? 我的理解是Envy性能更高,占用系统资源更少
作者回复: 编程友好的api,方便容器化,配置方便
2018-11-2716