–
Server Side Apply非常棒,你应该使用它
2022.10.20 周四
作者:Daniel Smith (Google)
服务端应用(SSA)到现在已经正式发布几个版本了,我发现自己在一些交流中会推荐 人们/团队 在各种情况下使用它。所以我想写下其中的一些原因。
SSA明显(和不太明显)的好处
从各种东西切换到服务端应用,你会得到一系列的改善/好处!
- 与客户端应用(很明显就是
kubectl apply
)相比:- 当你不小心和另一个角色争夺一个字段的值时,会产生系统冲突!
- 当与
--dry-run
结合使用时,不会意外地出现运行客户端dry run而不是服务器端dry run的情况。
- 与手工滚动的补丁相比:
- SSA的补丁格式写起来非常自然,没有奇怪的语法。它只是一个普通的对象,但你可以(也应该)省略任何你不关心的字段。
- 旧的补丁格式(“strategic merge patch”)是临时性的,仍然有一些错误;JSON-patch和JSON merge-patch不能处理Kubernetes API中常见的一些情况,即有项目的列表应该根据 "name "或其他识别字段进行递归合并。
- 现在还有很棒的go语言库支持,可以以编程方式构建应用调用!
- 你可以使用SSA明确地删除你不 "own "的字段,将它们设置为
null
,这使得它成为所有旧的补丁格式的功能完整的替代品。
- 相对于使用kubectl:
- 你可以在任何语言中使用a